在Python中,从同一个类创建多个对象的最佳实践是什么?例如:
(doc, grumpy, happy, sleepy, bashful, sneezy, dopey) = Dwarf(), Dwarf(), Dwarf(), Dwarf(), Dwarf(), Dwarf(), Dwarf()
这是相当笨拙的。生成器表达式可以缩短它:
(doc, grumpy, happy, sleepy, bashful, sneezy, dopey) = (Dwarf() for i in range(7))
但for i in range(7)
位似乎应该是不必要的。我见过使用... = (object,)*7
的suggestion,但这只适用于不可变的基本类型(数字、字符串、元组等)。如果用于用户类,它将为同一对象分配所有名称。你知道吗
我问这个问题主要是出于好奇,尽管有时我确实需要这个来测试代码。我搜索了相当广泛,还没有找到确切的答案。你知道吗
如果需要许多类似的变量,可以使用
dict
而不是用新变量滥发全局名称空间。试试这个:像
dwarfs["grumpy"].call_the_prince()
一样使用它们,而不是grumpy.call_the_prince()
。你知道吗如果必须创建新的变量(我认为他们不应该这样做):
我应该这么做,但这个简单的问题很难看。你知道吗
注意:在不存在dict理解的旧Python版本上:
看起来有点奇怪,矮人不知道自己的名字,但是:
您也可以使用以下方法之一:
或者
后两种类型可能看起来像是大量的类型,但它们是通用的,因为它们可以处理任何可以不带参数调用的类型,并且可以修改以处理那些不带参数的类型。你知道吗
相关问题 更多 >
编程相关推荐