我正在尝试学习类(class),有人可以向我解释为什么这段代码不起作用。我以为从类中调用函数时,会自动省略“self”,但解释器告诉我缺少参数“a”(他认为 self = 10)。
#! coding=utf-8
class test:
def __init__(self):
"do something here"
def do(self,a):
return a**2
d = test.do
print(d(10))
最佳答案
首先实例化类:
d = test().do
print(d(10)) # prints 100
test.do
是一个未绑定(bind)的方法,test().do
是绑定(bind)的。此线程中解释了差异: Class method differences in Python: bound, unbound and static 。关于Python 3 : Calling a Function from a class, 自我,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18532678/