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 编程的核心概念。