【问题标题】:For loop variable classes对于循环变量类
【发布时间】:2021-12-15 10:22:16
【问题描述】:

我怎样才能使它工作,以便可以将 for 循环中的 i 添加到 sq_i。所以我可以创建多个名为 sq_1、sq_2、sq_3 等的对象。 enter image description here

【问题讨论】:

标签: python


【解决方案1】:

我的方法是将所有这些对象放入字典中:

class Board:
    SQUARES = {}
    def __init__(self, squares):
        self.squares = squares
        for i in range(self.squares):
            Board.SQUARES[f'sq_{i}'] = Square(i+1)            

我不认为与globals() 一起玩是个好主意 - 我的意思是,像这样:

for i in range(self.squares):
    globals()[f'sq_{i}'] = Square(i+1)  

例如,如果在代码中的其他地方定义了相同的全局变量怎么办?

【讨论】:

    【解决方案2】:

    如果您只是将它们命名为sq_i,其中i 是某个整数,那么听起来您想要一个列表。

    class Board
        def __init__(self, size: int):
            self.squares = [Square(i+1) for i in range(size)]
    

    现在参考:

    board = Board(16)
    board.squares[0]  # first square
    board.squares[2]  # third square
    # etc...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-30
      • 2021-11-16
      • 1970-01-01
      • 2016-10-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多