通過字串引入模組下的屬性

2021-09-24 17:23:40 字數 1297 閱讀 8114

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...