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

python类成员概要

python类成员概要

python类成员分类如图:

简要说明:

1.实例变量(Instance Variables)

    定义:在方法中通过 self.变量名 声明,属于单个实例

    特点:每个实例拥有独立副本,在实例间不共享。

    访问:实例.变量名

示例:

class MyClass:def __init__(self, value):self.instance_var = value  # 实例变量obj1 = MyClass("实例1的值")
obj2 = MyClass("实例2的值")
print(obj1.instance_var)  # 输出: 实例1的值
print(obj2.instance_var)  # 输出: 实例2的值

2.类变量(Class Variables)

    定义:在类中直接声明,所有实例共享的变量

    特点:修改后会影响所有实例

    访问:类名.变量名 或 实例.变量名

示例:

class MyClass:class_var = "共享值"  # 类变量# 通过类访问
print(MyClass.class_var)  # 输出: 共享值# 通过实例访问
obj = MyClass()
print(obj.class_var)  # 输出: 共享值

3.实例方法(Instance Methods)

    定义:第一个参数为 self(指向实例自身)

    调用:通过实例访问

示例:

class MyClass:def instance_method(self):return "这是实例方法"obj = MyClass()
print(obj.instance_method()) # 输出:这是实例方法

4.类方法(Class Methods)

    定义:使用 @classmethod 装饰器,第一个参数为 cls(指向类本身)

    调用:可通过类或实例访问

示例

class MyClass:@classmethoddef class_method(cls):return f"类方法被调用,类名: {cls.__name__}"print(MyClass.class_method())  # 通过类调用,输出:类方法被调用,类名: MyClass
obj = MyClass()
print(obj.class_method())     # 通过实例调用,输出:类方法被调用,类名: MyClass

5. 静态方法(Static Methods)

    定义:使用 @staticmethod 装饰器,无 self 或 cls 参数

    调用:类名.方法名() / 对象名.方法名() ,后者不推荐。

示例

class MyClass:@staticmethoddef static_method():return "这是静态方法"print(MyClass.static_method())  # 通过类调用,输出:这是静态方法
obj = MyClass()
print(obj.static_method())      # 通过实例调用(不推荐),输出:这是静态方法

6.特殊方法(Magic/Dunder Methods)

    定义:以双下划线开头和结尾的方法(如 __init__, __str__)

    作用:实现运算符重载、对象行为定制

    调用:自动调用——特殊方法无需像普通方法一样显式调用(如obj.method()),而是在特定场景或操作触发时由 Python 解释器自动执行。

示例

class MyClass:def __init__(self, name):  # 初始化方法self.name = namedef __str__(self):         # 定义打印格式return f"对象: {self.name}"obj = MyClass("示例")
print(obj)  # 自动调用 __str__,输出: 对象: 示例

又如:

class Vector:def __init__(self, x, y):self.x, self.y = x, ydef __add__(self, other):return Vector(self.x + other.x, self.y + other.y)def __str__(self):return f"Vector({self.x}, {self.y})"v1 = Vector(1, 2)
v2 = Vector(3, 4)
v3 = v1 + v2  # 触发__add__,得到v3=(4, 6)
print(v3.x, v3.y)  # 输出:4 6
print(v3)  # 输出:Vector(4, 6)

【常见特殊方法简要说明:

__init__(self, ...):初始化实例。

__str__(self):定义print(obj)时的输出格式。

__add__(self, other):重载+运算符(如obj1 + obj2会调用__add__)。

__len__(self):定义len(obj)的返回值。】

7.特性(Properties)

    定义:使用 @property 装饰器,将方法伪装成属性

    作用:实现 getter/setter 控制,封装属性访问。

    组成:

        @property:声明 getter 方法

        @x.setter:声明 setter 方法

        @x.deleter:声明 deleter 方法(可选)

    调用:实例.属性

示例:

class Temperature:def __init__(self):self._celsius = 0  # 实际存储的私有变量@propertydef celsius(self):          # Getter 特性"""获取摄氏度值"""return self._celsius@celsius.setterdef celsius(self, value):   # Setter 特性"""设置摄氏度值(自动转换华氏度)"""if value < -273.15:raise ValueError("温度不能低于绝对零度")self._celsius = value@propertydef fahrenheit(self):       # 只读特性"""获取华氏度值(计算属性)"""return (self._celsius * 9/5) + 32# 使用示例
t = Temperature()
t.celsius = 25      # 调用 setter
print(t.celsius)    # 调用 getter →输出: 25
print(t.fahrenheit) # 调用只读特性 → 输出:77.0
t.celsius = -300    # 触发 ValueError: 温度不能低于绝对零度

附录

Python类的成员介绍 https://blog.csdn.net/cnds123/article/details/130898914

Python中的函数和方法概要 https://blog.csdn.net/cnds123/article/details/148617793

Python命名空间(Namespaces)和作用域(Scopes)讲座 https://blog.csdn.net/cnds123/article/details/108429084

相关文章:

  • ChatNT-用于DNA、RNA和蛋白质任务的多模态对话代理-文献精读143
  • Unity3D仿星露谷物语开发62之添加NPC角色
  • 嵌入式PADS中元件封装绘制与实现
  • 重复的囚徒困境博弈中应该如何决策?--阿克塞尔罗德竞赛(Axelrod‘s Tournament)实验
  • 数据结构与算法:贪心(一)
  • java中的类与对象
  • QGraphicsView
  • 使用Word2Vec实现中文文本分类
  • 【均价趋势副图指标】识别洗盘,拉升,最佳潜伏点,止盈防守跟踪操盘技术图文解说
  • Emacs定制:文件管理dired
  • 2025最新版!Windows Python3 超详细安装图文教程(支持 Python3 全版本)
  • 坚持做一件事情和好奇做一件事,本质区别和思考
  • 知识点|MVC模式(Model–view–controller)
  • 知识点|MTV模式(Model-template-view)
  • Day53打卡 @浙大疏锦行
  • 三维重建 —— 3. 单视几何
  • 为应对激烈竞争环境,IBMS系统如何提升企业管理效率
  • 深入讲解 Ollama 的源码
  • 快速幂算法详解:从暴力到优雅的数学优化
  • ELK日志文件分析系统——概念
  • 青岛做网站好的公司/成功的网络营销案例ppt
  • 企业网站banner/怎么快速推广自己的产品
  • 织梦中查看演示网站怎么做/专业网站优化排名
  • 今日的新闻头条10条/seo首页优化
  • 做公司的网站有哪些东西吗/杭州网站推广大全
  • 一级a做受片免费网站/营销型网站建设哪家好