【Python】类的声明和使用
1.【Python】使用vscode编码提示找不到模块2.【Python】真值与假值3.【Python】迭代器与可迭代对象的区别与关系4.【Python】async与await用法5.【Python】异步迭代器与普通迭代器的区别6.【Python】静态方法与类方法的区别7.【Python】Formatter预定义的字段有哪些8.【Python】注解的使用9.【Python】包和模块的应用
10.【Python】类的声明和使用
11.【Python】函数参数12.【Python】省略号的用法13.【Python】如何判断变量类型14.【Python】十六进制、八进制、二进制的写法15.【Python】__pycache__文件夹16.【Python】枚举定义17.【Python】判断属性是否存在18.【Python】如何获取命令行参数19.【Python】__name__的用法1、类的声明
语法:
class MainWindow:
"""class information
"""
pass # class body
2、特殊方法
2.1 init
构造函数,类会调用该方法构造对象。
语法:
class Test:
def __init__(self, args...):
pass
2.2 del
析构函数,在对象销毁时调用。
语法:
def __del__(self):
pass
2.3 str
将对象转为适合人读的字符串
语法:
def __str__(self):
pass
2.4 cmp
对象比较
语法:
def __cmp__(self, x):
pass
3、创建对象
使用函数式调用的方法创建对象。
语法:
obj = class_name(args...)
4、访问对象
使用.
操作符访问、添加、修改对象属性。
语法:
obj.age = 14 # 添加
obj.age = 17 # 修改
del obj.age # 删除
5、内置类属性
属性名 | 描述 |
---|---|
__dict__ | 类的所有属性字典 |
__doc__ | 类的文档字符串 |
__name__ | 类名 |
__module__ | 类定义所在模块 |
__bases__ | 类的所有父类元组 |
6、垃圾回收
python
使用引用计数实现对象销毁和垃圾回收。
当对象引用计数为0时,解释器会在合适的时机,销毁对象,回收占用的内存空间。
7、继承
语法:
class sub_class(parent1, parent2, ...):
pass
如果子类的构造器需要使用父类的构造器,那么需要显式调用父类的构造器super().__init__(args..)
。
子类调用父类方法有两种:使用super().method(args..)
调用父类方法和类名调用父类方法Parent.method(self, args...)
。
8、python运算符重载
运算符 | 重载函数 |
---|---|
+ |
__add__(self, p2) |
- |
__sub__(self, p2) |
* |
__mul__(self, p2) |
求幂** |
__pow__(self, p2) |
/ |
__truediv__(self, p2) |
整除// |
__floordiv__(self, p2) |
取余% |
__mod__(self, p2) |
<< |
__lshift__(self, p2) |
>> |
__rshift__(self, p2) |
& |
__and__(self, p2) |
| |
__or__(self, p2) |
^ |
__xor__(self, p2) |
~ |
__invert__(self, p2) |
9、python比较运算符重载
比较运算符 | 重载函数 |
---|---|
< |
__lt__(self, p2) |
<= |
__le__(self, p2) |
== |
__eq__(self, p2) |
!= |
__ne__(self, p2) |
> |
__gt__(self, p2) |
>= |
__ge__(self, p2) |
10、保护与私有属性
单下划线开头的属性声明为protected
,只能子类访问,外部不能访问;
双下划线开头的属性声明为private
,只能本类访问,子类和外部均不能访问。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗