NameError: name 'WIDTH_DEGREES' is not defined
NameError: name 'WIDTH_DEGREES' is not defined
我正在尝试这样做 MOOC
在这个class
我写了完全相同的代码,但对我来说效果不一样。没看懂。
我的完整代码在 github.
class Zone:
ZONE = []
MIN_LONGITUDE_DEGREES = -180
MAX_LONGITUDE_DEGREES = 180
MIN_LATITUDE_DEGREES = -90
MAX_LATITUDE_DEGREES = 90
WIDTH_DEGREES = 1
HEIGHT_DEGREES = 1
def __init__(self, corner1, corner2):
self.corner1 = corner1
self.corner2 = corner2
self.inhabitants = 0
@classmethod # etand donner qu'on ne sommes plus dans l'instance, masi oui dans la classe il faut changer self par cls
def initialize_zones(cls):
for latitude in range(cls.MIN_LATITUDE_DEGREES, cls.MAX_LATITUDE_DEGREES):
for longitude in range(cls.MIN_LONGITUDE_DEGREES, cls.MAX_LONGITUDE_DEGREES, WIDTH_DEGREES):
bottom_left_corner = Position(longitude, latitude)
top_right_corner = Position(longitude + cls.WIDTH_DEGREES, latitude + cls.HEIGHT_DEGREES)
zone = Zone(bottom_left_corner, top_right_corner)
cls.ZONE.append(zone)
#zone = Zone(bottem_letf_corner, top_right_corner)
print(len(cls.ZONES))
def main():
for agent_attributes in json.load(open("agents-100k.json")):
latitude = agent_attributes.pop('latitude')
longitude = agent_attributes.pop('longitude')
position = Position(longitude, latitude)
agent = Agent(position, **agent_attributes)
Zone.initialize_zones()
main()
错误是:
Traceback (most recent call last):
File "model.py", line 64, in
main()
File "model.py", line 62, in main
Zone.initialize_zones()
File "model.py", line 46, in initialize_zones
for longitude in range(cls.MIN_LONGITUDE_DEGREES, cls.MAX_LONGITUDE_DEGREES, WIDTH_DEGREES):
NameError: name 'WIDTH_DEGREES' is not defined
for longitude in range(cls.MIN_LONGITUDE_DEGREES, cls.MAX_LONGITUDE_DEGREES, WIDTH_DEGREES)
应该是
for longitude in range(cls.MIN_LONGITUDE_DEGREES, cls.MAX_LONGITUDE_DEGREES, cls.WIDTH_DEGREES)
下次,post 你的完整错误回溯
您的 for longitude ...
循环中有 WIDTH_DEGREES
而不是 cls.WIDTH_DEGREES
。
所以,毕竟,我有两个错误,其中一个是 CLS,我不小心尝试插入,但由于我在其中犯了一个错误,而且由于我没有注意,所以我有两个错误一个因为在印刷品中也写得很糟糕。
首先,正如@FHTMichell 所说的那样:
for longitude in range(cls.MIN_LONGITUDE_DEGREES, cls.MAX_LONGITUDE_DEGREES, WIDTH_DEGREES)
应该是
for longitude in range(cls.MIN_LONGITUDE_DEGREES, cls.MAX_LONGITUDE_DEGREES, cls.WIDTH_DEGREES)
还有:
@classmethod
def initialize_zones(cls):
打印也有误:
print(len(cls.ZONES))
应该是
print(len(cls.ZONE))
也感谢@user2653663 的帮助。
我正在尝试这样做 MOOC
在这个class
我写了完全相同的代码,但对我来说效果不一样。没看懂。
我的完整代码在 github.
class Zone:
ZONE = []
MIN_LONGITUDE_DEGREES = -180
MAX_LONGITUDE_DEGREES = 180
MIN_LATITUDE_DEGREES = -90
MAX_LATITUDE_DEGREES = 90
WIDTH_DEGREES = 1
HEIGHT_DEGREES = 1
def __init__(self, corner1, corner2):
self.corner1 = corner1
self.corner2 = corner2
self.inhabitants = 0
@classmethod # etand donner qu'on ne sommes plus dans l'instance, masi oui dans la classe il faut changer self par cls
def initialize_zones(cls):
for latitude in range(cls.MIN_LATITUDE_DEGREES, cls.MAX_LATITUDE_DEGREES):
for longitude in range(cls.MIN_LONGITUDE_DEGREES, cls.MAX_LONGITUDE_DEGREES, WIDTH_DEGREES):
bottom_left_corner = Position(longitude, latitude)
top_right_corner = Position(longitude + cls.WIDTH_DEGREES, latitude + cls.HEIGHT_DEGREES)
zone = Zone(bottom_left_corner, top_right_corner)
cls.ZONE.append(zone)
#zone = Zone(bottem_letf_corner, top_right_corner)
print(len(cls.ZONES))
def main():
for agent_attributes in json.load(open("agents-100k.json")):
latitude = agent_attributes.pop('latitude')
longitude = agent_attributes.pop('longitude')
position = Position(longitude, latitude)
agent = Agent(position, **agent_attributes)
Zone.initialize_zones()
main()
错误是:
Traceback (most recent call last):
File "model.py", line 64, in
main()
File "model.py", line 62, in main
Zone.initialize_zones()
File "model.py", line 46, in initialize_zones
for longitude in range(cls.MIN_LONGITUDE_DEGREES, cls.MAX_LONGITUDE_DEGREES, WIDTH_DEGREES):
NameError: name 'WIDTH_DEGREES' is not defined
for longitude in range(cls.MIN_LONGITUDE_DEGREES, cls.MAX_LONGITUDE_DEGREES, WIDTH_DEGREES)
应该是
for longitude in range(cls.MIN_LONGITUDE_DEGREES, cls.MAX_LONGITUDE_DEGREES, cls.WIDTH_DEGREES)
下次,post 你的完整错误回溯
您的 for longitude ...
循环中有 WIDTH_DEGREES
而不是 cls.WIDTH_DEGREES
。
所以,毕竟,我有两个错误,其中一个是 CLS,我不小心尝试插入,但由于我在其中犯了一个错误,而且由于我没有注意,所以我有两个错误一个因为在印刷品中也写得很糟糕。
首先,正如@FHTMichell 所说的那样:
for longitude in range(cls.MIN_LONGITUDE_DEGREES, cls.MAX_LONGITUDE_DEGREES, WIDTH_DEGREES)
应该是
for longitude in range(cls.MIN_LONGITUDE_DEGREES, cls.MAX_LONGITUDE_DEGREES, cls.WIDTH_DEGREES)
还有:
@classmethod
def initialize_zones(cls):
打印也有误:
print(len(cls.ZONES))
应该是
print(len(cls.ZONE))
也感谢@user2653663 的帮助。