python 是一个很有弹性的语言,可是弹性也意味着,完成一件事情会有很多方法。这篇文章介绍产生产生 dict 与 type object 的方法。注意,以下讨论都是未**化的情形。

上面的方法会产生一个名字叫 Test1 的方法。毫无疑问,他是在 run-time 时期产生物件。前者较后者减少了一个 function call。但是后者有个优点,因为它是 run-time 时期产生物件的,所以可以在 run-time 时期决定该型别的模样,而不是一开始就写死了。

在介绍我想到的最后一种,要做到过滤的方法,你可以使用 filter 函数,你也可以考虑使用 list comprehensions。

前者呼叫函数来做过滤物件,所以是 run-time 时期决定过滤物件。后者则是 compile-time 时,就知道那个叙述可能要做过滤物件。不过执行实际的过滤动作时,还是在 run-time。没办法,资料只有 run-time 时才知道。

注1: python 类别有新式类别和旧式类别之分。用新式类别(有继承 object) 的写法产生的物件是 type 物件。然而使用旧式类别 的写法产生的物件是 classobj

如以下程式码。

你的选择,是你的选择? 还是程式的选择?