python类方法第一个参数_python中类方法的第一个参数是什么?

根据我的理解,类方法中传递的第一个参数是定义类方法的类本身。例如,考虑以下代码:class A(object):

__x=10

@classmethod

def clam(cls,*args):

print(cls.__x)

class B(A):

__x=50

当我打电话给你时:

^{pr2}$

输出是10,据我的理解是可以的,因为被调用的类方法是在类A中定义的,所以类A将隐式传递给clam(),并且x的值是10。在

但当我运行以下代码时:class A(object):

x=10

@classmethod

def clam(cls,*args):

print(cls.x)

class B(A):

x=50

当我打电话给你时:B.clam()

我的生活突然毁了。输出50。在

这两种情况的唯一区别是,在前一种情况下,x是私有的。

到底发生了什么事?为什么后一个的输出是50?是否有任何范围变化,或者传递给A中定义的类方法的第一个参数突然变成了B类中的?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值