flask中可以配置乙個字串匯入settings下的配置檔案
"settings.productionconfig"
)這裡就是來講解一下這個到底是怎麼實現的。
例:
這是just_***.py裡面的內容
# -*- coding: utf-8 -*-
# @time : 2019/6/17 上午 11:50
# @author : lh
# @email : [email protected]
# @file : just_***.py
# @software: pycharm
class
myvalue
(object):
value1 =
'this is a vaule1'
value2 =
'this is a vaule2'
test_use.py
# -*- coding: utf-8 -*-
# @time : 2019/6/17 上午 11:52
# @author : lh
# @email : [email protected]
# @file : test_use.py
# @software: pycharm
import importlib
my_path =
'test1.just_***.myvalue'
path, name = my_path.rsplit(
'.', maxsplit=1)
# 進行反向切片。
a = importlib.import_module(path)
# 獲取
cls =
getattr
(a, name)
# 使用反射
for key in
dir(cls)
:# 遍歷內容
if key.isupper():
# 篩選大寫的屬性
print
(key,
getattr
(cls, key)
)
這是我的專案目錄
這就是flask和django裡面的配置檔案的實現原理了。
python通過字串獲取物件的屬性
有時候需要通過配置檔案的字串來獲取某個物件的屬性。舉個例子,假設在配置檔案中可以指定資料集名稱dataset name cococaptions 需要使用torchvision提供的資料集,但是其提供的資料集很多,如 lsun lsunclass fakedata cococaptions coco...
Python 反射,通過字串來匯入模組
反射 通過字串額形式,匯入模組 通過字串的形式,去模組中尋找指定函式,並執行函式。import 字串形式的模組名稱 就可以匯入相應的模組 通過內建函式 getattr 模組名,函式的字串名稱 來指定需要執行的函式 注意找到了函式,還需要在函式名後面加 來執行函式。getattr,setattr,ha...
C 通過屬性名字串獲取 設定物件屬性值
目錄 獲取物件的所有屬性名稱及型別 判斷物件是否包含某個屬性 0 定義乙個類public class user public string name public string age 1 通過屬性名 字串 獲取物件屬性值user u new user u.name lily var propnam...