繁体   English   中英

如何使用列表实例化和填充 class 变量?

[英]How to instantiate and populate class variables using a list?

我想使用列表在 class 中实例化变量。 这就是我想要实现的目标:

my_list = ['apple', 'banana', 'mango']
my_object = my_class(my_list)
vars(my_object) => {'apple': 'apple', 'banana': 'banana', 'mango': 'mango'}

my_list = ['pear', 'melon']
my_object = my_class(my_list)
vars(my_object) => {'pear': 'pear', 'melon': 'melon'}

是否有任何方法可以使用在我为 class 编写代码时可能不知道的列表自动实例化变量?

你可以做

class MyClass:
    def __init__(self, _list):
        for value in _list:
            setattr(self, value, value)

但是你不应该这样做,你的用例是什么?

我不能比这段代码更进一步:

my_list = ["apple", "banana", "mango"]


class my_class:
    def __init__(self, my_list: list) -> None:
        pass

my_object = type("my_class", (), {k: k for k in my_list})
print(vars(my_object))

暂无
暂无

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

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