2016-10-06 6 views
0

Я только что видел следующий код и хотел бы знать, что функция внутри функции __init__ означаетЧто означает определение функции в конструкторе __init__ в python?

def __init__(self): 
    def program(percept): 
     return raw_input('Percept=%s; action? ' % percept) 
    self.program = program 
    self.alive = True 
+1

@CoryKramer Это не дубликат. Связанный вопрос о том, что означает '__init__' в классе. Этот вопрос связан с определением функции внутри функции (которая является '__init__'). Я считаю, что это следует возобновить, если не будет найден более точный дублирующий вопрос. –

+0

@PlatinumAzure Если это действительно то, что ОП путает, они должны указать. Из того, что я понял, их вопрос имел в виду, они хотели знать, для чего использовался метод '__init__' в целом. Я снова открою, если ОП разъяснит их вопрос, и это действительно не дубликат. – CoryKramer

+1

@CoryKramer У вопроса есть некоторые грамматические проблемы, но цель ясна: «Я только что видел этот код и хотел бы знать, что ** функция с функцией' __init__' ** на самом деле означает «(внимание мое). –

ответ

0

Этот код

class Foo: 
    def __init__(self): 
     def program(percept): 
      return raw_input('Percept=%s; action? ' % percept) 
     self.program = program 

AFAIK, на самом деле точно так же, как это так self.program = program ,

class Foo: 
    def __init__(self): 
     pass 

    def program(self, percept): 
     return raw_input('Percept=%s; action? ' % percept) 

Единственная причина, я могу видеть в гнезде функция была, если вы просто использовали функцию, чтобы сделать некоторые инициализацию в конструкторе, но не хотел подвергать его классу.