2016-11-14 8 views
0

다른 함수 세 개 (포인터)로 구성된 함수를 호출하여 반환하려고합니까?함수 내에서 함수 호출

def ForeName(): 
    forename = raw_input("Please enter you're Forename: ") 
    return forename 


def MiddleName(): 
    middle_name = raw_input("Pleaase enter you're Middle name: ") 
    return middle_name 

def SurName(): 
    surname = raw_input("Please eneter you're Surname: ") 
    return surname 

def UserName(): 
    result = UserName() 
    print "result %s" % (result) 

UserName() 
+1

, 질문의 형식을하시기 바랍니다. 특히 파이썬에 관한 ... –

+0

미안하지만 서둘러! –

+0

감사합니다. 훨씬 더 좋아 보인다! –

답변

1

모든 기능에 왜 str 개의 매개 변수가 있습니까? 당신은 코드를 혼란스럽게하지 않도록 그들을 삭제하지 마십시오.

그 일을 한 후에는 다음과 같이() 자신의 이름 뒤에 당신이 가지고있는 경우에만 메서드를 호출 할 수 있습니다 :

result = ForeName(), MiddleName(), SurName() 

당신은 무언가에 UserName(str)의 반환 값을 설정 한 다음 그를 인쇄해야합니다.

result = UserName(str) 
print "result %s" % (result) 

(또는 UserName() 당신이 str 매개 변수를 삭제합니다.)

+0

제 생각에 그는 클래스와 함수 정의를 혼동스럽게 생각합니다. 클래스를 사용하면 리턴 타입을 거기에 넣을 수 있습니다. –

+1

@ElliotRoberts : 클래스의 리턴 유형은 무엇을 의미합니까? – Moberg

+0

Oop,이 값은 2.7입니다. 3.5에서는 클래스를 정의 할 때'class MyClass' 다음에 괄호 안에 부모 클래스를 넣습니다. 이것은 일반적으로 클래스 생성자가 반환하는 유형입니다. –

0

상용구 코드의 많은이 있습니다 :

당신은 아마이 원하는. 프롬프트에서 찾고자하는 이름 유형을 받아 들일 수 있습니다.

def get_name(name_type): 
    return raw_input('Please enter your {}name\n'.format(name_type)) 

def user_name(): 
    result = get_name('fore'), get_name('middle'), get_name('sur') 
    return ' '.join(result) 

print('Result: ' + user_name()) 

결과는 다음과 같습니다

Please enter your forename 
Darren 
Please enter your middlename 
Coder 
Please enter your surname 
Macis 
Result: Darren Coder Macis 
+0

재미있는 방법. 나는 당신의 코드를 복사했으나 {}을 버렸고 여전히 효과가있었습니다. 그것은 필요한가요? 아, 그걸 취소해라, 나는 그것이 처음부터 중간까지 그것을 sur로 움직이는 것을 본다. 그것을 사용하지 않고 forename을 세 번 반복하여 나열합니다. –

+0

{}는 name_type을 % 기호와 유사하게 넣을 위치를 말합니다. – Brian

+0

원한다면 raw_input의 입력 내용을 다음과 같이 바꿀 수 있습니다 : ''% sname을 입력하십시오. \ n '% name_type' – Brian

관련 문제