2013-04-03 100 views
2

这是一个示例代码,我从其中一个python类教程中找到。Python类属性引用

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

print MyClass.f 
print MyClass.i 

一旦我运行这个,我期待输出结果的“你好世界”和“12345”。但相反,我越来越这

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

为什么它不给我'你好世界'?如何更改我的代码以便打印出“Hello World”?我没有关于Python类和方法的线索,只是开始学习。

回答

7

首先创建一个MyClass的实例。

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

您不需要为i创建MyClass的实例,因为它是类成员,而不是实例成员。

+1

够清楚了。非常感谢 –

+1

这是对的,但你也可能想提到OP需要*调用*方法,否则python将只打印出有关该方法的信息而不是运行它的代码。 – mgilson

1

总是有一个函数被其名称调用,它由()表示。因此,使用 MyClass.f()