尝试制作一个棋盘,如果只有一个参数,则必须是正方形(如果有两个参数,则为矩形)。
代码示例:
class Game:
def __init__(self,h,w=h): # lookie-lookie
self.board = [[0 for i in range(w)] for j in range(h)]
我的期望:
b = Game(2)
b.board
#should return [[0,0],[0,0]]
b = Game(2,1)
b.board
#should return [[0],[0]]
我得到了什么:
NameError: name 'h' is not defined
我该如何解决?
答案 0 :(得分:3)
在函数定义中,将计算传递给可选参数的值,但是,在该瞬间,未定义FileContentResult
。您可以使用sentinel值作为可选参数的占位符:
h
如果您使用的是Python 2,请记住继承class Game(object):
def __init__(self,h,w=None):
if w is None:
w = h
。