当前位置: 首页 > news >正文

类属性与实例属性的区别

# 继承情况下:类属性、实例属性的区别
#  """  Person3.count += 1   """
class Person3:# Person类的计数器count : int = 0def __init__(self):Person3.count += 1class Student(Person3):# Student类也有自己的计数器count : int = 0def __init__(self):# 调用父类的__init__,这会增加Person.countsuper().__init__()print(f"创建2个Person 实例如下:\n")
person_3 = Person3()
# 1
print(f"实例属性,person_3: {person_3.count}")
person_4 = Person3()
# 2
print(f"类属性,Person3: {Person3.count}")
#  0
print(f"类属性,Student: {Student.count}")
# 2
print(f"实例属性,person_3: {person_3.count}")
#
print(f"实例属性,person_4: {person_4.count}")
# 2
print("\n创建2个Student实例:")
s1 = Student()
s2 = Student()
print(f"类属性,Person3:{Person3.count}")      # 4 (增加了2个)
print(f"类属性,Student: {Student.count}")    # 0 (没有改变)
print(f"实例属性,Person3:{person_3.count}")     # 4
print(f"实例属性,Student: {person_4.count}")    # 4
# 0
print(f"实例属性,s1:{s1.count}")
# 0
print(f"实例属性,s2: {s2.count}")# --------------------------------------------------------------
# """  self.count += 1  """
class Person3:# Person类的计数器count : int = 0def __init__(self):self.count += 1class Student(Person3):# Student类也有自己的计数器count : int = 0def __init__(self):# 调用父类的__init__,这会增加Person.countsuper().__init__()print(f"创建2个Person 实例如下:\n")
person_3 = Person3()
# 1`
print(f"实例属性,person_3: {person_3.count}")
person_4 = Person3()
# 0
print(f"类属性,Person3: {Person3.count}")
# 0
print(f"类属性,Student: {Student.count}")
# 1
print(f"实例属性,person_3: {person_3.count}")
# 1
print(f"实例属性,person_4: {person_4.count}")print("\n创建2个Student实例:")
s1 = Student()
s2 = Student()
#  0
print(f"类属性,Person3:{Person3.count}")
#   0
print(f"类属性,Student: {Student.count}")
#  1
print(f"实例属性,Person3:{person_3.count}")
#  1
print(f"实例属性,Student: {person_4.count}")
#  1
print(f"实例属性,s1:{s1.count}")
#  1
print(f"实例属性,s2: {s2.count}")# ----------------------------------------------------
"""  self.__class__.count += 1   """
class Person3:# Person类的计数器count : int = 0def __init__(self):self.__class__.count += 1class Student(Person3):# Student类也有自己的计数器count : int = 0def __init__(self):# 调用父类的__init__,这会增加Person.countsuper().__init__()print(f"创建2个Person 实例如下:\n")
person_3 = Person3()
#  1
print(f"实例属性,person_3: {person_3.count}")
person_4 = Person3()
#  2
print(f"类属性,Person3: {Person3.count}")
# 0
print(f"类属性,Student: {Student.count}")
# 2
print(f"实例属性,person_3: {person_3.count}")
# 2
print(f"实例属性,person_4: {person_4.count}")print("\n创建2个Student实例:")
s1 = Student()
s2 = Student()
#  2
print(f"类属性,Person3:{Person3.count}")
# 2
print(f"类属性,Student: {Student.count}")
#  2
print(f"实例属性,Person3:{person_3.count}")
# 2
print(f"实例属性,Student: {person_4.count}")
#  2
print(f"实例属性,s1:{s1.count}")
# 2
print(f"实例属性,s2: {s2.count}")# ---------------------------------------------------------------------------
# 添加Student自己的计数器
class Person2:count : int =0def __init__(self):Person2.count += 1class Student2(Person2):count = int = 0def __init__(self):super().__init__()Student2.count += 1print(f"创建2个Person 实例如下:\n")
person_2 = Person2()
# 1
print(f"实例属性,person_2: {person_2.count}")
person_2_1 = Person2()
# 2
print(f"类属性,Person2: {Person2.count}")
# 0
print(f"类属性,Student2: {Student2.count}")
# 2
print(f"实例属性,person_2: {person_2.count}")
# 2
print(f"实例属性,person_2_1: {person_2_1.count}")print("\n创建2个Student实例:")
s1 = Student2()
s2 = Student2()
#  4
print(f"类属性,Person2:{Person2.count}")
#  2
print(f"类属性,Student2: {Student2.count}")
#  4
print(f"实例属性,Person2:{person_2.count}")
#  4
print(f"实例属性,Student: {person_2_1.count}")
# 2
print(f"实例属性,s1:{s1.count}")
#  2
print(f"实例属性,s2: {s2.count}")

  

http://www.zskr.cn/news/164534.html

相关文章:

  • ‌跨国产品的测试流程:兼顾全球化与本地化需求
  • cookies专题(服务器返回cookies)
  • WasmEdge边缘运行时支持TensorFlow模型尝试
  • 阿里云GPU服务器部署TensorFlow镜像完整教程
  • Abseil C++ 库:Google开源的现代C++公共库
  • 数据分析师AI转型指南:四大模型相关岗位,助力非科班出身从业者轻松转型!
  • 渗透测试:构筑企业数据资产的主动防御体系
  • 2026年7大运维方向解析:哪个更“吃香”?
  • 性能测试知识详解
  • AI就业黄金时代:5大高薪岗位全解析+零基础入门学习路线(建议收藏)_【25年最新】普通人逆袭AI年薪50万+的完整路线图
  • 小白如何快速从 0 到 1 搭建个人网络安全实验室?从零基础入门到精通,收藏这一篇就够了!
  • 平头哥含光芯片对接TensorFlow生态设想
  • 从踏勘到交付,iSolarBP如何搭建光伏人的“全栈能力”?
  • 收藏!金融人跨界AI智能体开发全攻略,小白/程序员入门大模型必看
  • 【收藏】裁员潮下程序员破局:零基础入门大模型,抢占2025高薪赛道
  • React项目中嵌入TensorFlow.js实现图像识别功能
  • 跨域推荐系统:TensorFlow实现Domain Adaptation
  • 探索三相异步电机交流变频调速仿真的奇妙世界
  • 基于微信小程序的医院门诊智能预约平台
  • 禅道应用2
  • AI工程师必看:TensorFlow镜像优化技巧汇总
  • OCR文字识别解决方案:TensorFlow EasyOCR实战
  • Collections和Arrays工具类整理
  • 模型压缩技术实战:TensorFlow模型剪枝与量化
  • 基于Spring Boot的高校不同专业毕业生就业率统计系统
  • TensorFlow + Kubernetes:打造可扩展的AI服务平台
  • ‌从0到1搭建企业内部API自动化测试平台:实战指南
  • 自动驾驶背后的推手:TensorFlow在智能交通中的角色
  • 探索单相PWM整流逆变仿真:从理论到代码实践
  • 深入理解Page Object模式:不是用了就万事大吉