💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] # dir内置函数 使用内置函数dir传入标识符/数据,可以查看对象内的所有属性及方法 ~~~ dir('ABC') ~~~ 提示`___方法名__`格式的方法是python提供的内置方法/属性,稍后会给大家介绍一些常用的内置方法/属性 | 方法名 | 作用 | |---|---|---| | `__new__` | 创建对象时,会被自动调用 | | `__init__` | 对象被初始化,会被自动调用 | | `__del__` | 对象被从内存中销毁前,会被自动调用 | | `__str__` | 返回对象的描述信息,print函数输出使用 | # 类的构成 类(Class) 由3个部分构成 * 类的名称 :类名 * 类的属性 :一组数据 * 类的方法 :允许对进行操作的方法(行为) 定义类 ~~~ class 类名: 方法列表 ~~~ 定义一个Car类 ~~~ # 定义类 class Car: # 方法 def getCarInfo(self): print('车轮子个数:%d, 颜色%s'%(self.wheelNum, self.color)) def move(self): print("车正在移动...") ~~~ 说明: * 定义类时有2种:新式类和经典类,上面的Car为经典类,如果是Car(object)则为新式类 * 类名的命名规则按照"大驼峰" 在Python 2及以前的版本中,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位置),都属于“新式类”,都会获得所有“新式类”的特性;反之,即不由任意内置类型派生出的类,则称之为“经典类”。 “新式类”和“经典类”的区分在Python 3之后就已经不存在,在Python 3.x之后的版本,因为所有的类都派生自内置类型object(即使没有显示的继承object类型),即所有的类都是“新式类” # 创建对象 可以根据已经定义的类去创建出一个个对象 创建对象的格式为: ~~~ 对象名 = 类名() ~~~ ~~~ # 定义类 class Car: # 移动 def move(self): print('车在奔跑...') # 鸣笛 def toot(self): print("车在鸣笛...嘟嘟..") # 创建一个对象,并用变量BMW来保存它的引用 BMW = Car() BMW.color = '黑色' BMW.wheelNum = 4 #轮子数量 BMW.move() BMW.toot() print(BMW.color) print(BMW.wheelNum) ~~~ # 类描述信息 `__doc__` 表示类的描述信息 ~~~ class Foo: '''描述类的信息''' def func(self): pass print(Foo.__doc__) ~~~ 输出 ~~~ 描述类的信息 ~~~ # `__module__`和`__class__` * `__module__`表示当前操作的对象在哪个模块 * `__class__`表示当前操作的对象的类是什么 ~~~ class Person(object): def __init__(self): self.name = 'laowang' ~~~ ~~~ from test import Person obj = Person() print(obj.__module__) # 输出test即输出模块 print(obj.__class__) # 输出test.Person 即: 输出类 ~~~