给一个字符串路径来获取 类和类里面的静态属性
app.py
import importlib
path="settings.Foo" # 给字符串找类 先截取 在通过模块 在通过反射
a,b=path.rsplit(".",maxsplit=1) # 加了maxsplit参数,发现在大量数据处理的时候
print(a,b) # settings Foo
m=importlib.import_module(a)
print(m) # <module 'settings' from 'J:\\django_flask\\myflask\\settings.py'>
cls=getattr(m,b)
print(cls) # <class 'settings.Foo'>
# 如何找到这个类
print(dir(cls)) # 这个是获取到类里面的所有信息
# ['NAME', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__',
# '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'age']
for key in dir(cls):
if key.isupper():
print(key) # 获取类里面值
print(key,getattr(cls,key)) # NAME 张三
settings.py
class Foo():
NAME="张三"
age=22