这是我的代码:
class bla:
def function1():
print 1
def function2():
bla.function1()
x = bla()
x.function2()
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我得到错误"TypeError:function2()不接受任何参数(1给定)"因为我似乎没有传递任何参数function2
.
self
通过对其对象的隐式引用来调用常规方法- 否则它们将无法访问其任何数据成员x
.
它们应该总是这样声明:
class bla:
def function1(self):
print 1
Run Code Online (Sandbox Code Playgroud)
如果你想让它们对对象进行操作(例如self
,松散地等同this
于C++中的指针).
或者,如果你不关心对象(所以你真的只是使用类将一些函数组合在一起),你可以static
这样做:
class bla:
@staticmethod
def function1():
print 1
@staticmethod
def function2():
bla.function1()
Run Code Online (Sandbox Code Playgroud)
事实上,这是你可以调用的唯一途径bla.function1()
,而不实例bla
从你的function2
.
归档时间: |
|
查看次数: |
244 次 |
最近记录: |