简体   繁体   English

通过知道 class 名称,如何获取具有默认值的 class 密钥 | PYTHON

[英]By Knowing class name, how to get class key with its default value | PYTHON

I have multiple class in one file(a.py).我在一个文件 (a.py) 中有多个 class。 On other file (b.py) i know some class name.在其他文件 (b.py) 上,我知道一些 class 名称。 In same file b.py i need the complete key, value of the class.在同一个文件 b.py 中,我需要完整的键值 class。

a.py file:一个.py文件:

class CarCompany(BaseModel):
    audi: Optional[str] = 'Good'
    bmw: Optional[str] = 'Good'
    tata: Optional[str] = 'Good'`
class CarYear(BaseModel):
    2017: Optional[str] = 'Good'
    2018: Optional[str] = 'top sell'
    2020: Optional[str] = 'Average'`
    2021: Optional[str] = 'top sell'`

b.py file: b.py文件:

Some python code gives that get _____ class and send default value.一些 python 代码给出了获取 _____ class 并发送默认值的方法。

I know class name by below...我通过下面知道 class 的名字...

final_class.__class__.__name__

Now how to get the class variable and its default value.现在如何获取 class 变量及其默认值。

Below one have some format like:下面一个有一些格式,如:

final_var.__class__.__dict__
'__fields__': {
        '2017': ModelField(name = '2017', type = Optional[str], required = False,
            default = Good),
        '2018': ModelField(name = '2018', type = Optional[str], required = False,
            default = top sell),
        '2020': ModelField(name = '2020', type = Optional[str], required = False,
            default = Average),
        '2022': ModelField(name = '2022', type = Optional[str], required = False,
            default = top sell)
}

Can anyone help me to get the requested format.谁能帮我得到要求的格式。

Thanks谢谢

I tried above format and code in python我在 python 中尝试了以上格式和代码

I got the solution by我得到了解决方案

var_dict = final_var.__class__.__dict__
all_fields = var_dict['__fields__']

default_val = next((v.__getattribute__('default') for i, v in all_fields.items()), None)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM