【发布时间】:2023-03-14 02:20:01
【问题描述】:
这是我的第一个问题,很抱歉... 我是 python 和一般编码的初学者,我想创建一个名为“Map”的类,它具有以下类变量:
class Map:
height = 11
width = 21
top = [['#']*width]
middle = [['#']+[' ']*(width-2)+['#'] for i in range(height-2)]
field = top + middle + top
b = Map()
Shell:
>>> middle = [['#']+[' ']*(width-2)+['#'] for i in range(height-2)]
NameError: name 'width' is not defined
如果我将变量放在类之外,它就可以工作。 我做错了什么??
感谢您的帮助。
【问题讨论】:
-
你通过classes tutorial了吗?
-
b.width? b.身高?因为你在课堂之外,所以地图。看这篇文章会帮助你更好地理解:stackoverflow.com/questions/68645/…
-
我正在使用 IDLE,不确定这是否重要,再次感谢您抽出宝贵时间帮助我 (:
-
@Padraic Cunningham 如果我将所有这些变量放在 'def __init__(self):' 下,它可以工作,但我希望它们是类变量,如果我更改 'middle = [['# ']+['']*(width-2)+['#']' 到 '中间 = [['#']+['']*(21-2)+['#']' 它也有效...为什么?
-
@Cookiesforhelp,我添加了一些相关文档的答案
标签: python class python-3.x class-variables