Python 3:从类中调用函数,self

thr*_*434 3 python class python-3.x

我正在尝试学习类,有人可以向我解释为什么这段代码不起作用.我想当从类中调用函数时,"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))
Run Code Online (Sandbox Code Playgroud)

ale*_*cxe 10

首先实例化该类:

d = test().do
print(d(10))  # prints 100
Run Code Online (Sandbox Code Playgroud)

test.do是一个未绑定的方法,test().do是绑定的.这个线程解释了不同之处:Python中的类方法差异:绑定,未绑定和静态.