2016-10-04 3 views
-3

Я пытаюсь вызвать метод класса «func», который должен что-то печатать, но он никогда не печатается ... Нет ошибок, а просто тишина. Код ниже:Почему метод класса не вызван?

class AnyClass(): 
    atr1=0 
    atr2='text' 

    def func(): 
     print ('Ran Func') 

a = AnyClass() 
a.func 
+0

Вы не назвав его: 'a.func()' –

+0

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

+0

Спасибо. Похоже, мне также нужно определить, нравится ли: def func (self) – andrewlis

ответ

6

a.func только имя объекта метода. Вы должны позвонить с ().

>>> a.func 
<bound method AnyClass.func of <__main__.AnyClass object at 0x0000000003506240>> 

>>> a.func() 
Ran Func 

Также обратите внимание, что вы должны передать self методу в качестве первого аргумента при определении его, если не используется @staticmethod декоратор.

def func(self): 
     print ('Ran Func') 
2

a.func - это просто ссылка на объект функции. Чтобы вызвать его, вам нужно добавить скобки.

a.func() 
0

функция должна иметь круглые скобки, как a.func()

Смежные вопросы