我有下面的代码和任何试图创建一个类的代码,该类在一个列表中生成两个随机数并返回它们
import random
class add :
def __init__(self):
self.data = []
def GenerateLocation(self):
random1 = 10
random2 = 20
self.data.append(random.uniform(-random1 , random1))
self.data.append(random.uniform(-random2 , random2))
print(self.data)
self.data.GenerateLocation(self)
我得到错误self is not defined in line 15
self.data.GenerateLocation(self)
。你知道吗
有人能解释一下吗,我已经看过self和init的其他问题了,但都超出了我的理解范围。你知道吗
这行
self.data.GenerateLocation(self)
真的很奇怪,不清楚你想在这里做什么。如果您正在创建类,那么您似乎想要实例化它,即创建该类的对象。为此,必须调用构造函数。在你的情况下,它会像(复制@furas的答案)这将创建对象
my_object
,它是类Add
的实例。然后可以调用对象的方法generate_location
。为此,必须在generate_location()
前面加上对象的名称。你知道吗请注意,尽管
generate_location
有参数self
,但在这个调用中并没有显式给出它。这是因为Python将对象my_object
作为第一个参数自动传递给方法generate_location
,因为它是这个对象的方法。(方法是与对象相关联的函数,如列表的.append()
)有关详细信息,请参阅官方教程:python 2,python 3。你知道吗
我想你应该这样做:
要使用类,必须创建对象/实例。创建实例python调用
Add.__init__
,并在内存中为self.data
保留位置。然后您可以调用它的方法my_object.generate_location()
,它可以使用self.data
。你知道吗self
仅在类内使用-它类似于单词me
,my
(my.data
)。你知道吗相关问题 更多 >
编程相关推荐