【Python】类的基本使用

tech2025-02-02  16

类的基本使用

类的定义创建对象isinstance(object, className)类的简介类是 type 类型的对象类的种类数据 ( 属性 ) & 行为 ( 方法 )(1)数据 ( 属性 )类的属性对象的属性 (2)行为 ( 方法 )对象的行为类的行为 (3)静态行为 ( 方法 )添加 / 修改 对象的数据 ( 属性 ) __ init __ 函数类的封装、继承 & 多态

类的定义

语法:class 类名() : 代码块

创建对象

语法:对象名 = 类名 ( )

class MyClass(): pass object1 = MyClass() print(object1, type(object1)) # ---------- 输出 ---------- # <__main__.MyClass object at 0x000002469E4E81D0> <class '__main__.MyClass'>

isinstance(object, className)

用于判断该对象是否属于该类 ( 或其父类 ) ;若是则返回 True,否则返回 False class MyClass(): pass object1 = MyClass() print(isinstance(object1, MyClass)) # ---------- 输出 ---------- # True

类的简介

类是 type 类型的对象

class MyClass(): pass print(id(MyClass), type(MyClass)) # ---------- 输出 ---------- # 3078569221256 <class 'type'>

类的种类

自定义的类 & 系统自带的类 (eg:int、float、list、dict…)

print(int) class MyClass(): pass print(MyClass) # ---------- 输出 ---------- # <class 'int'> # <class '__main__.MyClass'>

数据 ( 属性 ) & 行为 ( 方法 )

(1)数据 ( 属性 )

类的属性

类的数据 ( 属性 ) :直接在类中用变量创建。 class Person(): name = 'superman' 该类的数据 ( 属性 ) 是该类的对象共同拥有的,即该类的对象都可以调用该类的数据 ( 属性 ),但是无法修改。类属性可以通过类名访问、修改 class Animals(object): name = 'animals' print(Animals.name) Animals.name = 'duck' print(Animals.name) # ---------- 输出 ---------- # animals # duck

对象的属性

对象的数据 ( 属性 ) :通过类的对象添加的属性。对象的数据 ( 属性 ) 只能通过该对象进行访问、修改。

(2)行为 ( 方法 )

对象的行为

直接在类中用函数创建对象调用行为函数时,把自己作为实参传递给行为函数,所以行为函数默认带有一个 self 形参。通过类名调用行为函数时,需要填写类的对象作为实参 class Person(object): def speak(self): print('i am a handsome boy') person1 = Person() person1.speak() # 通过对象调用行为函数 Person.speak(person1) # 通过类名调用行为函数 # ---------- 输出 ---------- # i am a handsome boy # i am a handsome boy

类的行为

在类中以 @classmethod 来修饰的行为 ( 方法 )类的行为 ( 方法 ) 的第一个形参是 cls,cls 就相当于当该类名。其实就是类把自己作为实参传递给行为函数了。类的行为 ( 方法 ) 是所有对象共同拥有的,所以它不仅可以通过类名去调用,还可以通过对象去调用。 class Person(object): @classmethod def speak(cls): print('i am a handsome boy') person1 = Person() person1.speak() Person.speak() # ---------- 输出 ---------- # i am a handsome boy # i am a handsome boy

(3)静态行为 ( 方法 )

用 @staticmethod 修饰的行为 ( 方法 ) ,就是静态行为 ( 方法 )静态方法不需要默认形参,可以通过类名或对象调用 class Person(object): @staticmethod def speak(): print('i am a handsome boy') person1 = Person() person1.speak() Person.speak() # ---------- 输出 ---------- # i am a handsome boy # i am a handsome boy 类里面的行为函数默认只能调用类的属性。

添加 / 修改 对象的数据 ( 属性 )

添加数据的语法:对象名 . 属性名 = 属性值

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 __ 函数

即特殊方法,也叫魔法方法

类的对象在创建时会自动先执行类的非函数内容,然后执行 __ 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】类的封装、继承 & 多态

最新回复(0)