0%

Python Usage

使用 import 引用包

项目树

1
2
3
4
5
6
7
8
9
10
11
12
13
importDemoDir
|---package
| |---package1
| | |---init.py
| | |---module1.py
| | |---module2.py
| |
| |---package2
| | |---init.py
| | |---module3.py
|
|---main.py
|

绝对引用

1
2
3
4
# main.py
from package.package1 import module1
from package.package1 import module2
from package.package2 import module3

相对引用

1
2
3
4
5
6
7
8
9
# main.py
from .package1 import module1 # 1个.代表本级目录
from .package1 import module2 # 2个..代表上级目录
from .package2 import module3 # 3个...代表上上级目录

# 使用相对应用的文件将无法作为程序入口,只可以被其他文件调用
# 一般在 package 文件中使用相对引用
# module2.py
from ..package2 import module3 # 注意相对引用时不可以跨越顶层目录!

importlib

这里的作用主要是动态导入,在代码中根据需要导入自己写好的库

1
2
m1 = importlib.import_module(name="package.package1.module1")  # 绝对引入
m2 = importlib.import_module(".package1.module2", package="package") # 相对引入

使用setattr(self, k, v),为类设置新实例属性并且赋值!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class config:
# 以下是类变量,所有实例共享
learning_rate = 1e-4
batch_size = 16

def __init__(self, lr, bs, **kwargs):
super().__init__()
# 以下是实例变量,为每个实例拥有
self.lr = lr
self.bs = bs

for k, v in kwargs.items():
setattr(self, k, v) # 将其他参数注册为实例变量:self.k = v

Donate comment here.