嵌套 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
的所有参数一样..)
我已经定义了两个包含嵌套 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
的所有参数一样..)