文章目录
- 前言
- 一、python中类的注意点
- 二、模块与包
-
- [1. 模块](#1. 模块)
- [2. 包](#2. 包)
- 总结
前言
本专栏主要记录python中一些语法问题。
一、python中类的注意点
-
类属性:在类中定义的属性
在类中直接写明的变量是类属性,属于公共属性。
- 访问:类属性可以通过类或者类的实例访问
- 修改:通过类对象修改的属性,在后续新实例对象会修改,已经创建的实例对象不会修改。
-
方法:在类中定义的函数(方法)
- 实例方法:self作为首个参数。
- 通过实例对象调用时:自动将当前实例作为self传入。
- 通过类调用时,需手动把类对象传递给self。
- 类方法:使用装饰器@classmethod修饰。
- 类方法内不可以直接调用实例方法,也不可以调用实例变量。
- 类和实例都可以直接调用类方法。
- 静态方法:@staticmethod 修饰,是一个 Python 的一个内置装饰器,用于定义静态方法。静态方法是类中的方法,与类的实例无关,也无法访问类的实例变量或其他实例方法。静态方法通过类名调用,而不是通过实例调用。
- 特殊方法:前后有两个下划线"*名字*",特殊方法一般在特殊时刻自动调用。如__init__会在创建对象时自动调用。
- 实例方法:self作为首个参数。
-
双下划线与单下划线
双下划线的属性或者方法,只能在类中使用,在外部使用会直接报异常,单下划线开头的不建议外部使用,但实际仍可外部调用。
-
装饰器
装饰器能够使得不影响原有函数功能的基础上,添加新的功能。
- @property:可以将方法使用类似属性的方式调用。
pythonclass MyClass: _name = 1 @property def name(self): return self._name m = MyClass() print(m.name)
- @属性名.setter给属性赋值
二、模块与包
1. 模块
模块化指将一个完整的程序分解为一个一个小的模块,通过将模块组合,搭建出一个完整的程序
- 不采用模块化,统一将所有的代码编写到一个文件中
- 采用模块化,将程序分别编写到多个文件中
模块化的优点:方便开发、方便维护、模块可复用
python中一个py文件就是一个模块,要想创建模块,实际上就是创建一个python文件
2. 包
包也是一个模块
普通的模块就是一个py文件,而包是一个文件夹
- 当模块中代码过多时,或者一个模块需要被分解为多个模块时,这时就需要使用到包
- 包中必须要一个一个 init.py文件,这个文件中导入有必要的内容,不要做没必要的运算
- init.py相关内容:_init _.py 的作用
-
标识包:init.py 文件的存在表明包含它的目录是一个包。没有这个文件的目录不会被 Python 解释器识别为包。
-
执行初始化代码:当包被导入时,init.py 中的代码会自动执行。这可以用来初始化包、设置变量、导入子模块等。
-
控制导入行为:可以在 _init _.py 中定义 all 列表来控制 from package import * 语句的行为。
-