[Python] 静态方法与非静态方法的参数传递

举个简单的例子就懂了:

class MyClass:
    def QWQ(argv):
        print(argv)

myClass = MyClass()
MyClass.QWQ   # => 返回: <function MyClass.QWQ at 0x0000025102040C10>
myClass.QWQ   # => 返回: <bound method MyClass.QWQ of <__main__.MyClass object at 0x0000025101AD3970>>

显然, 可以看到, 无论是通过类名, 还是通过实例, 都是可以访问到 QWQ 方法(函数)的. 我们继续调用一下它试试:

myClass.QWQ()   # => 打印: <__main__.MyClass object at 0x0000025101AD3970>
MyClass.QWQ()   # => 抛出: 类型异常: 缺少一个参数
MyClass.QWQ(114514)  # => 打印: 114514

显然, 可以看到, 通过实例来调用类中定义的方法, 无非是将自身作为第一个参数来调用.

posted @ 2021-05-05 20:46  SlimeNull  阅读(407)  评论(0编辑  收藏  举报