2013-04-03 4 views
2

Это пример кода, который я нашел в одном из уроков по классу python.Атрибут класса Python, ссылающийся на

class MyClass: 
    i = 12345 
    def f(self): 
     return 'hello world' 

print MyClass.f 
print MyClass.i 

Как только я запустил это, я ожидаю результат вывода «hello world» и «12345». Но вместо этого я получаю это

>>> 
<unbound method MyClass.f> 
12345 
>>> 

Почему это не дает мне «мир привет»? Как мне изменить свой код, чтобы он распечатывал «привет мир»? P.S Я не имею понятия о классах и методах python и только начал учиться.

ответ

7

Сначала создайте экземпляр MyClass.

test = MyClass() 
print test.f() 
print MyClass.i 

Вам не нужно, чтобы создать экземпляр MyClass для меня, потому что он является членом класса, не является членом экземпляра.

+1

достаточно ясно. Спасибо alot –

+1

Это правильно, но вы можете также упомянуть, что OP также должен * вызывать * метод, иначе python просто распечатает информацию * о * методе, а не запускает его код. – mgilson

1

Всегда функция называется ее именем, которое представлено (). Поэтому используйте MyClass.f()

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