我有一个快速的问题。
用返回的func初始化值,是否更像pythonic:
class Game:
def __init__(self, AMOUNT_OF_PLAYERS = 2, AMOUNT_OF_CARDS = 7):
self.draw_stack = create_draw_stack()
self.play_stack = [self.draw_stack.pop()]
def create_draw_stack():
VALUES = list(range(1, 10))
COLORS = ["Red", "Blue", "Yellow", "Green"]
return [Card(value, color) for value in VALUES for color in COLORS]
还是应该看起来像这样:
class Game:
def __init__(self, AMOUNT_OF_PLAYERS = 2, AMOUNT_OF_CARDS = 7):
self.draw_stack = []
self.play_stack = []
self.create_draw_stack()
self.create_play_stack()
def create_draw_stack(self):
VALUES = list(range(1, 10))
COLORS = ["Red", "Blue", "Yellow", "Green"]
cards = [Card(value, color) for value in VALUES for color in COLORS]
self.draw_stack = cards
def create_play_stack(self):
self.play_stack = [self.draw_stack.pop()]
我在网上找不到这个特定问题的任何内容。是否有经验法则可以直观地解决此类问题?
谢谢。
为了说明Slam用pythonic解决方案的答案:
class Game:
VALUES = list(range(1, 10))
COLORS = ["Red", "Blue", "Yellow", "Green"]
@classmethod
def create_draw_stack(cls):
return [Card(value, color) for value in cls.VALUES for color in cls.COLORS]
def __init__(self, players_count=2, cards_count=7):
self.draw_stack = self.create_draw_stack()
self.play_stack = [self.draw_stack.pop()]
另外,您问:
是否有经验法则可以直观地解决此类问题?
“直观”部分主要是经验问题(“经验”与“花时间做某事”不同-它还意味着阅读,实验,思考等)。
wrt /“经验法则”:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句