首页 > 其他分享 >classmethod的应用

classmethod的应用

时间:2022-10-23 16:12:06浏览次数:32  
标签:name classmethod self stu num 应用 Stuent cls

class Stuent(object):
stu_num = 0
__stu_num = 0


name = 333

def __init__(self,name):
self.name = name
# self.stu_num += 1 # 这就相当于对实例进行了赋值
Stuent.stu_num += 1 # 这是对类的变量进行赋值 ------- 访问公共属性用类名

# self.add_num()
self.add_num(self) # 这样调用add_num() 方法,同样可以作弊

print("生成了一个新学生",name,self.stu_num)





# @classmethod
# def add_num(cls):
# print("cls = ",cls)
# cls.__stu_num += 1
# print("生成了一个新学生", cls.__stu_num)

@classmethod
def add_num(cls, obj):
# 类里面如果有name又可以绕过去
if obj.name:
cls.__stu_num += 1
print("生成了一个新学生", cls.__stu_num,obj.name)

s1 = Stuent("Mjj")
s2 = Stuent("jack")
s3 = Stuent("Alex")

# 这样可以作弊
# Stuent.stu_num += 1
# print("stu_num = ",Stuent.stu_num)

# Stuent.add_num()

# 类里面如果有name又可以绕过去
Stuent.add_num(Stuent)


运行结果:

生成了一个新学生 1 Mjj
生成了一个新学生 Mjj 1
生成了一个新学生 2 jack
生成了一个新学生 jack 2
生成了一个新学生 3 Alex
生成了一个新学生 Alex 3
生成了一个新学生 4 333



标签:name,classmethod,self,stu,num,应用,Stuent,cls
From: https://www.cnblogs.com/startl/p/16818752.html

相关文章

  • 【前端】web网站应用微信扫码登陆功能实现
    视频参考......
  • 抽象类的应用
    packageTemplate;/***@authorliu$*@version1.0*@description:TODO*@date$$*/publicclassTemplateTest{publicstaticvoidmain(String[]args){......
  • 结构体的应用
    在C语言中,我们不免会遇到一些难以描述的对象,像一些动物呀,你在描述它的时候,需要将它的外形,体态,颜色,种类都应该讲出来。这时候我们引入结构体---struct(本义:结构,它是一个关键......
  • 移动应用软件常见的操作系统
    随着互联网技术的进步和软件形态的不断发展,移动应用软件(或称为移动终端软件)已经成为普通大众广泛使用的新型软件。因此,移动应用软件质量越来越受重视。移动应用软件与传统......
  • 移动应用软件的主要特点
    总体来说,移动应用软件是运行于移动设备上的一类新型软件,一般通过图形用户界面操作和传感反馈作为主要的软件交互方式。以Android应用软件为例,其主要特点包括:(1)多样的交互方......
  • 移动应用软件测试的手段
    ​在移动应用软件行业,人工测试仍然是开发人员和测试人员使用最普遍的测试方法。人工测试比较灵活,能够快速验证软件功能正确性,但往往人力成本较大,测试效率较低。为此,脚本编程......
  • 移动应用软件测试遇到的挑战
    脚本编程测试是目前业界实现移动应用软件测试,并提高测试效率的主要手段,在很大程度上降低了手工测试的成本,但在实际使用中仍然存在着一些局限性。此外,移动应用软件的测试也受......
  • 【转】单页面应用程序优缺点
    图片来自黑马程序员      ......
  • 应用上容器云的准入条件和最佳实践
    随着Kubernetes的发展,现在有一个新的技术趋势:在容器云中以Pod的方式运行虚拟机,这样容器云平台就能够提供普通容器无法实现的功能。相信通过类似的技术,越来越多的应用会向容......
  • 应用性能管理与链路追踪的关系
    应用性能管理APM(ApplicationPerformanceMonitoring)经常和分布式追踪同时出现,但两者却有着明显的差异。APM由来已久,已经有十几年的历史,自最早的以WebLogic为代表的J2EE应用......