嵌套 Python Class 定义的问题:定义了两个 类 使用相同的语法,但一个引发 "undefined name" 错误

Problem with nested Python Class definition: defined two classes using same syntax but one raises "undefined name" errors

我已经定义了两个包含嵌套 class 的 类,显然(对我而言)使用教科书语法的方式相同。但是其中一个引发了未定义的名称错误,我不明白为什么。

class Game:
    class Hand:
        def __init__(self, players, dealer, count):
            self.players = players
            self.dealer = dealer
            self.count = count
    
    def __init__(self, rules):
        self.rules = rules
        self.hand = self.Hand(players, dealer, count)
        
class Player:
    class SubPlayer:
        def __init__(self, name, cards, cards_sum, hand):
            self.name = name
            self.cards = cards
            self.cards_sum = cards_sum
            self.hand = hand 
                
    def __init__(self, name, stack, bet, cards, cards_sum, hand, subPlayers, is_insured):
        self.name = name
        self.stack = stack
        self.bet = bet
        self.cards = cards
        self.cards_sum = cards_sum
        self.hand = hand
        self.subPlayers = subPlayers
        self.is_insured = is_insured
        self.subPlayer = self.SubPlayer(name, cards, cards_sum, hand)

游戏 class 的初始化函数中出现错误,我尝试将其连接到嵌套的 Hand class,特别是行“self.hand = self.Hand(玩家、庄家、计数)”。错误读取未定义的名称玩家、经销商、计数。 Player class 运行得很好,我已经在我的程序中使用过它。为什么会这样?我该如何解决?

谢谢

Game__init__ 函数没有 players, dealer, count.

的参数

将其定义修改为:

    def __init__(self, rules, players, dealer, count):
        self.rules = rules
        self.hand = self.Hand(players, dealer, count)

(就像 Player__init__ 也有 SubPlayer 的所有参数一样..)