Python之旅——带着决心出发(第10步)

一、基础篇

11.类实例方法调用

类实例方法定义中,第一个参数为self,可认为是实例对象本身,类似于C++中的this指针。

两种等价的调用方式:

1.obj.obj_method()

2.MethodCall.obj_method(obj)

注:类方法和类的静态方法不支持第二种调用方式,但支持第一种调用方式。


代码举例:

class MethodCall:
def obj_method(self):       #类实例方法
print("obj_method")

@classmethod
def class_method(cls):       #类方法
print("class_method")

@staticmethod
def static_method():          #类静态方法
print("static_method")

if __name__ == '__main__':
obj = MethodCall()

obj.obj_method()
MethodCall.obj_method(obj)

obj.class_method()
MethodCall.class_method()

obj.static_method()
MethodCall.static_method()


输出结果:

obj_method
obj_method
class_method
class_method
static_method
static_method


错误的调用方式:

        MethodCall.class_method(obj)
MethodCall.static_method(obj)

分别调用以上两个表达式,输出错误结果为:

TypeError: class_method() takes 1 positional argument but 2 were given

TypeError: static_method() takes 0 positional arguments but 1 was given



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值