优先级
- 类属性
- 数据描述符
- 实例属性
- 非数据描述符
- 找不到的属性触发 getattr()
用pickle 序列化输入输出
#a.py 文件
import pickle
class earth:
pass
e = earth()
with open('a.txt', 'wb') as f:
pickle.dump(e, f)
# b.py 文件
import pickle
class earth:
pass
with open('a.txt', 'rb') as f:
pickle.load(f)
在 pycharm 中导入同个项目下的文件时 pycharm 会自动在环境变量中添加路径,但是一旦离开了 pycharm 就不能导入了,所以我们要手动添加可变环境变量
# 在 a 目录下的 test.py 文件中写了这个
def hello():
print('你好啊')
#与 a 目录同级别的目录
import sys, os
BASE_DIR = os.path.dirname(os.path.dirname(__file__)) #当前目录
sys.path.append(BASE_DIR) #添加到系统环境变量中
print(os.path.dirname(__file__)) # os.path.dirname() 的作用就是返回到上级目录
print(os.path.dirname(os.path.dirname(__file__)))
print(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
from a import test
test.hello()
输出结果:
C:/Users/libai/PycharmProjects/begin
C:/Users/libai/PycharmProjects
C:/Users/libai
你好啊