【发布时间】:2018-01-18 19:31:15
【问题描述】:
我是 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))
有没有办法在不首先测试 HouseThing house_things 是什么类型的情况下做到这一点? house_things.name 传递一个字符串,但我希望它能够将其用作关键字。
【问题讨论】:
标签: python enums constructor