请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

cls 的用法

Bobby 老师,
图片描述
我不是很明白为什么需要把type(self) 赋值给 cls这样一个变量。如果把cls 换成另外一个随机的变量名bobby可行么?
比如改成:
bobby = type(self),
下面也用bobby object来返回:
return bobby(group_name=self.group_name, …)

我理解的cls一般是用来特指类变量,就像self一样,虽然好像cls 和self都不是关键词,但是如果直接用cls指代一个type(这里具体是一个Group object) 还是有点难以理解。还是这里有什么特殊的目的必须要用cls来命名这个group object?

正在回答

1回答

可以啊, cls只是一个名字可以让你知道你这里的变量是一个类,而不是一个普通变量,代码可读性强而已

0 回复 有任何疑惑可以回复我~
  • 提问者 weixin_慕虎4147510 #1
    谢谢Bobby 老师,
    
    我只是还是不理解为什么cls和self不算是关键词呢? 
    
    用8-4这节课里面的例子:
    
    class User:
            def __new__(cls, *args, **kwags):
                   print ("in new")
    
    在这里 __new__()是可以把cls理解成是class 的,如果我在def __new__() 之前再定义一个 cls = 1, 会不会导致__new__() 里面引用的cls定义冲突?
    回复 有任何疑惑可以回复我~ 2022-01-23 16:33:01
  • bobby 回复 提问者 weixin_慕虎4147510 #2
    cls只是一个参数名, 至于为什么使用cls和self,主要是想通过参数名告知你这里的类型,因为python是动态语言没有类型申明,所以这里就通过参数名来做一个简单的告知, 所以如果你本来是cls传进来的参数,你在里面定义一个cls肯定要出错,你把类型都给别人变了
    回复 有任何疑惑可以回复我~ 2022-01-24 10:26:21
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信