类
类(class)
类是创建对象的蓝图或模板,它定义了对象应该具有的属性和方法。
基本语法
class ClassName:
"""类的文档"""
def __init__(self):
pass
注意: 类名通常使用帕斯卡命名法(PascalCase),即每个单词的首字母大写。
类变量(Class Variables)
类变量是属于整个类的变量,被该类的所有实例共享。
重要: 类变量可以通过类名直接访问,也可以通过实例访问,但修改时要小心!
实例变量(Instance Variables)
实例变量是属于特定对象实例的变量,每个实例都有自己独立的实例变量。
关键点: 实例变量在
__init__
方法中通过self.variable_name
定义,每个实例都有自己的副本。
getter && setter —— 属性装饰器
使用
@property
装饰器实现getter
使用
@celsius.setter
装饰器实现setter
实例方法(Instance Methods)
self
不是Python关键字,而是一个约定俗成的参数名,代表当前对象实例本身。
实例方法的第一个参数必须是 self
,用于操作实例数据
重要提醒: 虽然可以用其他名字代替
self
,但强烈建议使用self
,这是Python社区的约定。
类方法(Class Methods)
类方法使用@classmethod
装饰器,第一个参数是cls
(代表类本身),主要用于操作类变量或创建实例的替代方法。
使用场景: 类方法常用于工厂方法模式(创建对象的替代方法)和操作类级别的数据。s
静态方法(Static Methods)
静态方法使用@staticmethod
装饰器,不需要self
或cls
参数,与类的实例无关,主要用于工具函数。
关键特点: 静态方法独立于类的实例,可以看作是放在类中的普通函数,主要用于逻辑上与类相关但不需要访问实例或类数据的功能。
私有和公开(Private and Public)
Python使用命名约定来区分私有和公开属性,没有真正的私有性,主要依靠开发者遵守约定。
命名约定规则
命名方式 | 含义 | 访问性 |
---|---|---|
attribute | 公开属性 | 完全公开 |
_attribute | 受保护属性 | 内部使用,但可访问 |
__attribute | 私有属性 | 名称改写,难以直接访问 |
实际示例
方法也是同理的,想设置方法为私有方法,把方法名定义为
__
开头