Python 类与面向对象基础

Python 是面向对象语言,本文介绍类的定义和使用。

1. 定义类

class Person:
    pass

# 创建实例
p = Person()

带属性

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

p = Person("Alice", 25)
print(p.name)  # Alice

2. 方法

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def greet(self):
        return f"Hello, I'm {self.name}"

p = Person("Alice", 25)
print(p.greet())  # Hello, I'm Alice

类方法 @classmethod

class Person:
    species = "Human"
    
    @classmethod
    def from_dict(cls, data):
        return cls(data["name"], data["age"])

静态方法 @staticmethod

class Person:
    @staticmethod
    def is_adult(age):
        return age >= 18

3. 继承

class Student(Person):
    def __init__(self, name, age, school):
        super().__init__(name, age)
        self.school = school

多继承

class A: pass
class B: pass
class C(A, B): pass

4. 访问控制

class Person:
    def __init__(self):
        self._protected = 1   # 受保护
        self.__private = 2      # 私有
    
    def __method(self):         # 私有方法
        pass

5. 特殊方法

class Person:
    def __str__(self):
        return f"Person({self.name})"
    
    def __repr__(self):
        return f"Person({self.name!r})"
    
    def __eq__(self, other):
        return self.name == other.name

面向对象是 Python 编程的核心概念。