2017-12-06 24 views
1
이 코드가 실제로 작동합니까 방법을 알아 내려고 노력, 파이썬을 배우고

:클래스 메소드를 정의 할 때 등호 기호가있는 이유는 무엇입니까? FUNC (foo는 = 3)

def func(**args): 
    class BindArgs(object): 
     foo = args['foo'] 
     print 'foo is ', foo 
     def __init__(self,args): 
      print "hello i am here" 
    return BindArgs(args) #return an instance of the class 

f = func(foo=2) 

출력 :

foo is 2 hello i am here

을하지만 매우 혼란의 점에서 그 안에 등호를 취하는 함수 func(foo=2)의 인수. 흐름이 어떻게 작동하는지 설명해 주시겠습니까?

+0

링크의 답은 다음과 같습니다. 나의 예에서는'args == 'foo''와'args [ 'foo'] == 2'입니다. 'GindArgs (object) '클래스가'** args' 타입을 인자로 취할 수 있다면, 빠른 클래스는 실제 클래스가 실제로 "keyword (dictionary)"를 인수로 사용할 수 있다는 것을 의미합니까? – Jason

+0

예, 함수 및 따라서 클래스 구성은 사전을 인수로 사용할 수 있습니다. – Ahmad

답변

0

요약은 다음과 같습니다. func 함수를 호출하고 이에 대한 인수로 사전을 전달합니다. func 함수에서 BindArgs라는 클래스를 정의한 다음 return 문에서 먼저 BindArgs 클래스에서 개체 (인스턴스)를 만든 다음 해당 인스턴스를 반환합니다. 문 foo = args['foo']은 의 키 값을 args 사전 (즉, 2 샘플 코드)에서 가져옵니다. init도 개체를 만들 때 클래스의 생성자로 실행됩니다.