• 静态方法,小结


    '''
    静态方法(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,只能调用类数据属性和函数属性,不能访问实例属性
    静态方法:不能访问类属性和实例属性,是类的工具包(类和实例均可调用)
    '''
    while True: print('studying...')
  • 相关阅读:
    ExtJs之Grid
    [java]转:String Date Calendar之间的转换
    SQL Server脚本备份
    Java实现文件夹的复制(包括子文件夹与文件)
    Android webview使用详解
    zxing条码扫描横屏修改
    Genymotion的安装与eclipse配置教程
    开发中遇到的问题
    sql中COUNT()+GROUP BY +HAVING的组合使用
    由于包名与引用的库名相同导致的报错
  • 原文地址:https://www.cnblogs.com/xuewei95/p/14651062.html
Copyright © 2020-2023  润新知