2

这是我从一个 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
>>> 

为什么它不给我“你好世界”?如何更改我的代码以打印出“hello world”?PS我对python类和方法一无所知,刚刚开始学习。

4

2 回答 2

7

首先创建一个 MyClass 的实例。

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

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

于 2013-04-03T03:17:31.850 回答
1

一个函数总是由它的名字来调用的,这个名字用 . 来表示()。所以使用 MyClass.f()

于 2013-04-03T03:08:14.767 回答