python3 面向对象

70 阅读1分钟

类的基本使用

类使用class声明。

# 面向对象
class Person():
    def speak(self):
        print("您好")


xiaoming = Person()
xiaozhang = Person()
xiaoming.speak()
xiaozhang.speak()

# 添加属性
xiaoming.age = 18

print(xiaoming.age)  # 18
# print(xiaozhang.age) #报错

__init__方法

# __XX__ 魔法方法

class Person():
    def __init__(self):
        self.age = 18
        self.country = "中国"
    def speak(self):
        print(f"我今年{self.age}岁,来自{self.country}")


xiaoming = Person()
xiaoming.speak()  # 我今年18岁,来自中国

带参数的 init

class Student():
    def __init__(self, age, grade):
        self.age = age
        self.grade = grade
    def speak(self):
        print(f"{self.age} - {self.grade}")

xiaoming = Student(6,"小班")
xiaozhang = Student("6岁", 1)

xiaoming.speak()  # 6 - 小班
xiaozhang.speak()  # 6岁 - 1

格式化输出对象__str__

class Student():
    def __init__(self, age, grade):
        self.age = age
        self.grade = grade

    def speak(self):
        print(f"{self.age} - {self.grade}")

    def __str__(self):
        return f"{self.age} - {self.grade}"


xiaoming = Student(6, "小班")
xiaozhang = Student("6岁", 1)

xiaoming.speak()  # 6 - 小班
xiaozhang.speak()  # 6岁 - 1
print(xiaoming)  # 6 - 小班

删除对象自动调用__del__

class Person():
    def __del__(self):
        print("Person del")

a = Person()
print("Hello")
a = Person()  # 当变量重新被赋值的时候,之前的变量会被释放
print("finish")
'''
Hello
Person del
finish
Person del
'''