【问题标题】:Python classes and the __init___ constructor, how to make a list variable?Python 类和 __init___ 构造函数,如何创建一个列表变量?
【发布时间】:2021-02-07 21:02:13
【问题描述】:

您好,我正在创建一个包含购物清单的课程。该代码似乎有效,但我不确定我是否正确执行。我是不是要把 shopping = [] 放在构造函数中,那有什么作用? 非常感谢提前

class Shopping:
    def __init__(self, shopping = []): 
        self.__shopping = []

   
    def set_shopping(self, shopping): 
          self.__shopping  = shopping
    def get_shopping(self): 
        return self.__shopping

shoppinglist = Shopping()
shoppinglist = ['apples', 'pears', 'bread']

【问题讨论】:

  • shopping = [] 在构造函数中创建一个空列表,该列表对实例是唯一的,所以,是的,您的方法似乎是正确的。如果您在构造函数之外声明了 list 属性,那么该类的所有实例都是通用的。
  • 哦,非常感谢,我也需要将 shopping [] 放入 setter 中吗?因为我只有购物变量,而 setter 中没有列表
  • shopping 列表,您不应多次声明它。目前您无法在列表中添加文章,您可以设置整个列表。因此,如果您愿意,可以在另一种方法中添加类似 self.__shopping.append(newArticle) 的内容。
  • 知道了!谢谢

标签: python list class constructor getter-setter


【解决方案1】:

这是一个例子:

class Shopping:
    def __init__(self, shopping = []): 
        self.__shopping = []
    
    def set_shopping(self, shopping): 
          self.__shopping  = shopping
    
    def get_shopping(self): 
        return self.__shopping
    
    def add_article(self, article): 
          self.__shopping.append(article)

    def get_article(self, index): 
          return self.__shopping[index]

    shoppinglist = Shopping()
    shoppinglist.set_shopping(['apples', 'pears', 'bread'])
    shoppinglist.add_article('oranges')
    shoppinglist.get_article(0) #==> 'apples'
    shoppinglist.get_article(3) #==> 'oranges'

【讨论】:

    猜你喜欢
    • 2020-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 2014-03-19
    • 2014-02-25
    • 2015-05-08
    • 2016-01-18
    相关资源
    最近更新 更多