【发布时间】:2019-03-28 23:30:36
【问题描述】:
我有一个方法可以返回四个用于创建矩形的变量。但是该函数使用另一种方法来获取一些值。
所以我的 rectangle_points() 方法分别从 x_value() 和 y_value() 获得两个点,但由于某种原因,我无法从 rectangle_points() 内部对 x_value() 进行函数调用,我得到一个 NameError: name 'x_value'没有定义
from random import *
class Rectangle:
def x_value():
return choice(range(0, 800, 10))
def y_value():
return choice(range(0, 600, 10))
def rectangle_points():
x1 = x_value()
y1 = y_value()
x2 = x1 + 10
y2 = y1 + 10
return x1, y1, x2, y2
print('for rectangle points are {}'.format(rectangle_points()))
现在的预期结果应该是打印出四个点,但我得到一个 NameError: name 'x_value' is not defined。 ps 我假设如果要到达那条线,我会为 y1 = y_value() 线遇到同样的问题。
【问题讨论】:
-
您确实需要熟悉 Python 类的基础知识。 official tutorial is a good place to start
-
您似乎不小心将代码放入了一个不必要的类中。如果您取消缩进并删除该类,您的代码将运行得更好。
-
Khelwood 提出了一个很好的观点,你没有使用任何内部状态,那你为什么还要上课呢?
-
@juanpa.arrivillaga 类还没有完成,但我正在尝试在 python 中实现生命游戏
标签: python class methods scope nameerror