如何为自动创建的类对象指定名称(python)

时间:2011-10-13 08:51:45

标签: python oop

3 个答案:

答案 0 :(得分:4)

同样,在我之前的回答中,我会将对象放在dictionary中。在命名空间中创建它们的优势在于它们更易于维护。即如果你像你说的那样创建它们,你仍然需要知道它们,可能是通过记住列表中存储的引用(或者字典?)。如果您想依赖名称列表,那么您的代码将包含try个语句。

答案 1 :(得分:1)

基本上,您需要创建某种容器类的实例,并将其存储在Map类实例的属性中(即self.cities)。

理想情况下,此容器的类型应该适合于Map中的城市集合将如何使用和/或操纵。例如,是否会频繁添加,删除或更改成员?它们是否会经常迭代,是否需要按特定顺序保存或按需重新排序?

根据您对此类问题的回答,Python提供了许多内置的高性能数据类型,例如列表,词典和集合,这些类型可能是合适的。它还允许您在必要时创建自己的容器类。

答案 2 :(得分:0)

我会做这样的事情:

class Map(object):

  CITIES = { "america": ["Boston", "Chicago", "Denver"], "germany": ["Munich" , ...], ...}

  def __init__(self, country):
      self.cities = []
      for city_name in Map.CITIES[country].values():
          self.cities.append(City(city_name))