python中的静态方法、类方法解读
来源:互联网 发布:淘宝企业店铺资料 编辑:程序博客网 时间:2024/05/17 08:38
先上代码吧。
# -*- coding: utf-8 -*-class Tools():#---------------------------线程锁--------------------------------------------------- number = 0 innum = 10 def __init__(self, config): #self.logFilePath() print 'tools class' @staticmethod def getStaticNumber(): Tools.number += 1 return Tools.number + Tools.innum #但是无法访问:self.innum,即实例属性 @classmethod def getClassNumber(cls): cls.number += 2 return cls.number #但是无法访问:self.innum,即实例属性 def getNumber(self): self.number += 3 return self.number if __name__ == '__main__': print Tools.getClassNumber() # 2 print Tools.getStaticNumber() # 13 tool = Tools(1) print 'object' print tool.number # 3 print tool.getNumber() # 6 实例的函数并不能改变静态变量的值,但可以被静态变量赋值,不过它被赋值的时刻只有该实例被创建 #print tool.getNumber() 和被以一次使用时被静态变量赋值,而其他时候不被赋值 print tool.getStaticNumber() # 14 print tool.getClassNumber() # 6 print Tools.getClassNumber() # 8 print Tools.getStaticNumber() # 19 print Tools.getClassNumber() # 11 print 'object' print tool.number # 6 print tool.getNumber() # 9 tool = Tools(1) print tool.number # 11 #print tool.getNumber() print tool.getStaticNumber() # 22 print tool.getClassNumber() # 14 print Tools.getClassNumber() # 16 print Tools.getStaticNumber() # 27 print Tools.getClassNumber() # 19 print tool.number # 19 print tool.getNumber() # 22 print Tools.getClassNumber() # 21 print Tools.getStaticNumber() # 32 print Tools.getStaticNumber() # 33 print Tools.getClassNumber() # 25 print tool.number # 22 print tool.getNumber() # 25
总结:
1、实例的函数并不能改变静态变量的值,但可以被静态变量赋值,不过它被赋值的时刻只有该实例被创建和被以一次使用时被静态变量赋值,而其他时候不被赋值;
2、对于静态变量和类变量而言,其值不会受到实例的成员变量的影响(不会被其赋值),它们的值属于类;
3、静态方法和类方法都可以通过实例访问,和使用类访问的效果一样,因为静态方法和类方法不属于某一个实例,但是属于类;
4、静态方法和类方法都不可以访问实例的成员变量;
5、静态成员变量的改变,相当于这个类的改变,当重新为这个类生成一个实例对象的时候,此时获得的实例对象的变量就是此刻静态成员变量的值;
0 0
- python中的静态方法、类方法解读
- python中的静态属性,静态方法、类方法解读
- PYTHON中的静态方法和类方法
- python中的静态方法和类方法
- PYTHON中的静态方法和类方法
- python中的静态方法和类方法
- python中的静态方法和类方法
- Python中的类方法和静态方法
- python中的类方法和静态方法
- python中的类方法和静态方法
- python中的静态方法和类方法
- python 中的静态方法
- python中的类方法,静态方法,对象方法
- python中的普通方法、类方法和静态方法
- Python中的实例方法,类方法, 静态方法
- python中的实例方法、类方法、静态方法
- Python中的类方法和静态
- python中的静态类与方法
- No_25:1000-digit Fibonacci number
- Report Server 2008中隐藏值为NULL的行或者列
- 同步代码块
- 在asp.net中使用excel模板
- oracle 学习 3
- python中的静态方法、类方法解读
- Could not write file XXX\.classpath解决
- 为DataGrid 写一个 DropDownListColumn
- django1.62发送邮件(个人总结)
- K-means聚类算法
- DataReader也玩超酷数据显示分页
- 搜寻最长回文子串的解法之比较
- ASP.NET: Dispaly data from an Excel Spreadsheet
- GridView学习