上节疑问:
1、老师我们已经写到global_settings里了,为什么还要写到__init__.py setting
这的作用是为了:整合起两个的组合global_settings和settings
2、导入的时候from lib.config import settings怎么能找到这个settings呢?
导入文件夹的时候它默认会执行里面的__init__.py
3、os.environ['AUTO_CLIENT_SETTINGS'] = "conf.settings"是什么作用
当前进程里面设置一个k 一个v和其他程序没有任何关系
只在当前进程有效
拿到所有的变量
__init__.py
__init__.py from . import global_settings class Settings(object):
"""
global_settings 获取
settings 获取 """
def __init__(self):
for items in dir(global_settings):
#items 方法和属性
print(items) settings = Settings()
test.py
import sys
import os
import importlib
import requests BASEDIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASEDIR) from lib.config import settings
global_settings.py
TEST = True NAME = "GAOXU"
截图
只拿大写
__init__.py
from . import global_settings class Settings(object): def __init__(self):
for item in dir(global_settings):
if item.isupper():
#items 方法和属性
print(item,getattr(global_settings,item)) settings = Settings()
截图
打印API
用户设置优先级高
文件形式实现:单例模式
src.a1.py
class Foo:
pass obj = Foo()
src.a2.py
from src.a1 import obj
print(obj)
src.a2.py
#单例模式 不管怎么玩,用的都是同一个对象
from src.a1 import obj
print(obj)
from src.a1 import obj
print(obj)