永发信息网

python中的cls到底指的是什么,与self有什么区别

答案:2  悬赏:30  手机版
解决时间 2021-02-05 05:40
python中的cls到底指的是什么,与self有什么区别
最佳答案
普通的方法,第一个参数需要是self,它表示一个具体的实例本身。
如果用了staticmethod,那么就可以无视这个self,而将这个方法当成一个普通的函数使用。
而对于classmethod,它的第一个参数不是self,是cls,它表示这个类本身。
>>> class A(object):
def foo1(self):
print "Hello",self
@staticmethod
def foo2():
print "hello"
@classmethod
def foo3(cls):
print "hello",cls

>>> a = A()
>>> a.foo1() #最常见的调用方式,但与下面的方式相同
Hello <__main__.A object at 0x9f6abec>
>>> A.foo1(a) #这里传入实例a,相当于普通方法的self
Hello <__main__.A object at 0x9f6abec>
>>> A.foo2() #这里,由于静态方法没有参数,故可以不传东西
hello
>>> A.foo3() #这里,由于是类方法,因此,它的第一个参数为类本身。
hello
>>> A #可以看到,直接输入A,与上面那种调用返回同样的信息。
全部回答
搜一下:python中的cls到底指的是什么,与self有什么区别
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
六岁的小孩练跆拳道影响身高吗
希望英语学校(解放路)地址在什么地方,想过去
男·本色韩潮时尚基地这个地址在什么地方,我
林肯为谁留的胡子?
在人血清中含量最高的ig是
单选题2008年9月发布的《西藏文化的保护与发
启智辅导(大连金州区)地址在哪,我要去那里办
李泰是谁的儿子
【田横祭海节】田横祭海节田横这一地名的来历
荥阳市公安局家属院我想知道这个在什么地方
做梦被黑狗咬
金色少年托管地址在什么地方,想过去办事
怎么办啊 信心有点膨胀
前额脱发怎么办?这个能好吗?
下列______不是关于文件共享优点的正确描述
推荐资讯
求名侦探柯南变大的最新集数
福尔阳光清肤泉会馆在什么地方啊,我要过去处
c#语言 中2的4次方 该怎么算????????
我17岁了,还能练好柔韧性吗?
登陆QQ时原有的号码删不了
舒雅专业烫染基地地址在什么地方,我要处理点
美龄坊减肥美容理疗馆地址在什么地方,想过去
一本小说,内容是一群人,被一个貌似是组织的
绿林服饰这个地址在什么地方,我要处理点事
黑枸杞食用的禁忌
申请建行信用卡的时候说资历不够是什么意思
汉口到纸坊怎么坐车
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?