栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

静态方法和类方法区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

静态方法和类方法区别?

尽管 classmethod 和 staticmethod 非常相似,但在用法上依然有一些明显的区别。classmethod 必须有一个指向类对象的引用作为第一个参数,而 staticmethod 可以没有任何参数。

举个栗子:

class Num:    # 普通方法:能用Num调用而不能用实例化对象调用       def one():          print ('1')     # 实例方法:能用实例化对象调用而不能用Num调用    def two(self):        print ('2')     # 静态方法:能用Num和实例化对象调用    @staticmethod     def three():          print ('3')     # 类方法:第一个参数cls长什么样不重要,都是指Num类本身,调用时将Num类作为对象隐式地传入方法       @classmethod     def go(cls):         cls.three()  Num.one()          #1#Num.two()         #TypeError: two() missing 1 required positional argument: 'self'Num.three()        #3Num.go()#3 i=Num()     #i.one()#TypeError: one() takes 0 positional arguments but 1 was given         i.two() #2      i.three()         #3i.go()  #3 
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/364449.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号