我是Python的新手,我想将枚举作为参数传递给函数内的构造函数。
编辑:我正在编写一个程序,其中一个类必须组织不同类型的数据,但是大多数这些数据类型可以以相同的方式处理。这些数据不会同时或以可预见的顺序添加。因此,我希望保持相同的功能,并仅更改构造函数存储数据的方式。让我们考虑这个更简单的例子:
假设我有一个枚举
from enum import Enum, auto
class HouseThing(Enum):
people = auto()
pets = auto()
furniture = auto()
我有一个名为House的类,可以包含其中一些或所有这些内容。
class House():
def __init__(self, address, people = None, pets = None,
furniture = None):
self.address = address,
if self.people is not None:
self.people = people
etc....
现在我想要一个函数来创建新的装修过的房子,但我想使用一个可以用于任何房子的函数:
house_things = HouseThing.furniture
def make_house_with_some_house_things(neighborhood, house_things):
neighborhood.append(House(house_things.name = house_things.name))
有没有一种方法可以不先测试house_things是什么类型来完成这个操作?house_things.name返回一个字符串,但我希望它能够被用作关键字。
HouseThings.pets
…… 那么这所房子现在就有宠物了。 - Ethan Furman