语法:对象名 = 类名 ( )
class MyClass(): pass object1 = MyClass() print(object1, type(object1)) # ---------- 输出 ---------- # <__main__.MyClass object at 0x000002469E4E81D0> <class '__main__.MyClass'>自定义的类 & 系统自带的类 (eg:int、float、list、dict…)
print(int) class MyClass(): pass print(MyClass) # ---------- 输出 ---------- # <class 'int'> # <class '__main__.MyClass'>添加数据的语法:对象名 . 属性名 = 属性值
class MyClass(): pass object1 = MyClass() object1.name = 'superman' print(object1.name) # ---------- 输出 ---------- # superman 当添加的属性名已存在时,添加的属性值会覆盖原来的属性值 class Person(): name = 'superman' object1 = Person() object1.name = 'monster' print(object1.name) # ---------- 输出 ---------- # monster 当重复添加相同属性时,后面写的属性值会覆盖前面写的属性值 class Person(): name = 'superman' object1 = Person() object1.name = 'monster' object1.name = 'person' print(object1.name) # ---------- 输出 ---------- # person即特殊方法,也叫魔法方法
类的对象在创建时会自动先执行类的非函数内容,然后执行 __ init __ 函数内容 class Preson(): print('这是类的非函数内容') def __init__(self, PresonName): self.name = PresonName print(f'在__init__函数里面输出{self.name}') def speak(self): print('这里是类里面的函数内容') object1 = Preson('superman') print(f'在类外面输出{object1.name}') # ---------- 输出 ---------- # 这是类的非函数内容 # 在__init__函数里面输出superman # 在类外面输出superman 对象通过 __ init __ 函数创建的属性,是该对象的特有属性,不是类的属性 class Preson(): def __init__(self, PresonName): self.name = PresonName object1 = Preson('superman') print(object1.name) # ---------- 输出 ---------- # superman【Python】类的封装、继承 & 多态