我正在尝试学习类(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/

10-14 13:18
查看更多