当前位置: 首页 > 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.jsqmd.com/news/149677/

相关文章:

  • linux开发——网络配置(含VM网络配置)
  • TensorFlow源码编译指南:定制化CUDA版本支持
  • 【神经网络基础】-深度学习框架学习指南
  • ‌跨国产品的测试流程:兼顾全球化与本地化需求
  • WSL2下启动docker挂载的文件夹消失之问题
  • iptables 防火墙(二)
  • 隐私保护新方案:TensorFlow.js本地推理优势分析
  • 自动并行化工具:TensorFlow PjRT项目前瞻
  • 寒武纪MLU加速TensorFlow落地挑战分析
  • cookies专题(服务器返回cookies)
  • 云原生AI开发:Google Cloud AI Platform + TensorFlow实战
  • AutoGraph源码转换机制深度剖析
  • WasmEdge边缘运行时支持TensorFlow模型尝试
  • Abseil C++ 库:Google开源的现代C++公共库
  • 阿里云GPU服务器部署TensorFlow镜像完整教程
  • 最近在实验室鼓捣单相PFC电路,发现这玩意儿调起来比想象中有意思多了。咱们今天直接上干货,聊聊怎么用仿真实现交流转直流400V输出,顺便把功率因数给测出来
  • X光检测机如何守护食品与制药生产安全
  • 2025生成式AI应用大爆发:用户破5亿,多模态技术重塑生活
  • Kali Linux 安装(非常详细),零基础入门到精通,看这一篇就够了
  • 数据分析师AI转型指南:四大模型相关岗位,助力非科班出身从业者轻松转型!
  • 10大漏洞检测工具:构建应用安全的钢铁长城
  • ‌自动化测试维护成本降低50%的策略
  • 华为OD机试真题 【计算礼品发送的最小分组数目】 (C++ Python JAVA JS GO)
  • 渗透测试:构筑企业数据资产的主动防御体系
  • 收藏必备!前端转网络安全全攻略:10大高薪岗位详解+零基础学习资源
  • 测试自动化与DevOps的融合:软件交付的加速引擎
  • 打造不联网也强大的本地AI助理:Obsidian+Ollama+Qwen3实现隐私RAG
  • 性能测试知识详解
  • 收藏必备!告别RAG碎片化,一文掌握大模型智能体核心记忆架构(Forms-Functions-Dynamics框架详解)
  • 2026年7大运维方向解析:哪个更“吃香”?