首页 > 其他 > 详细

静态方法,小结

时间:2021-04-13 00:45:56      阅读:34      评论:0      收藏:0      [点我收藏+]
‘‘‘
静态方法(staticmethod)
只是名义上的归属类管理,不能使用类变量和实例变量,是类的工具包(类和实例都能调用)
‘‘‘

class Ball_team:
‘‘‘这是球队的类‘‘‘
def __init__(self, name, boss, slogan):
self.name = name
self.boss = boss
self.slogan = slogan

@staticmethod
def train(a, b, c): # 不能调用类属性及实例属性
print(‘%s和%s及%s在一起训练‘ % (a, b, c))

def test():
print(‘这是test函数‘)

Ball_team.train(‘alex‘, ‘yuanhao‘, ‘lhf‘) # 类调用
b1 = Ball_team(‘tigger‘, ‘wusir‘, ‘jiayou‘)
b1.train(‘sb‘, ‘sx‘, ‘sm‘) # 实例调用

Ball_team.test() # 类调用时不用传参,调用没有问题
# b1.test() # 实例调用时,会自动把实例传入到方法,所以这里会报错,无法调用(最起码要有一个参数来接收实例本身)
print(Ball_team.__dict__) # train和test两个方法都在类的属性字典里,只不过一个表示staticmethod object,另一个function Ball_team.test
print(b1.__dict__) # 实例属性字典依然只有数据属性


‘‘‘
总结
静态属性:把函数属性封装成数据属性的形式,实例调用时不需要再用括号
类方法:参数默认为cls,只能调用类数据属性和函数属性,不能访问实例属性
静态方法:不能访问类属性和实例属性,是类的工具包(类和实例均可调用)
‘‘‘

静态方法,小结

原文:https://www.cnblogs.com/xuewei95/p/14651062.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!