class HouseLocation():
def __init__(self,street_name,x,y):
self.street_name=street_name
self.x=x
self.y=y
def print_address():
print '{}: {},{}'.format(street_name,x,y)
我认为代码非常简单并且我会假设自己解释 现在我的问题是当我尝试运行它时
k = HouseLocation('lol lo',3,7)
k.print_address()
我收到以下错误消息
追踪(最近一次呼叫最后一次):
文件“”,第1行,
k.print_address()
TypeError:print_address()不带参数(给定1个)
有人可以解释一下我做错了吗?
答案 0 :(得分:3)
请记住,方法隐含地使用self
参数。将方法代码更改为:
def print_address(self):
print '{}: {},{}'.format(self.street_name,self.x,self.y)
答案 1 :(得分:1)
self
是缺少的参数,它作为所有类方法的第一个参数传递。
def print_address(self):
print '{}: {},{}'.format(self.street_name,self.x,self.y)
答案 2 :(得分:1)
您应该将self
传递给print_address()
def print_address(self):
print '{}: {},{}'.format(self.street_name, self.x, self.y)
答案 3 :(得分:1)
函数的第一个参数应该是self
参数。这是您的类的实例,并允许您相应地获取/设置属性。
class HouseLocation():
def __init__(self,street_name,x,y):
self.street_name=street_name
self.x=x
self.y=y
def print_address(self):
print '{}: {},{}'.format(self.street_name,self.x,self.y)
答案 4 :(得分:1)
self
是此处缺少的参数。该函数需要至少有一个参数,其中一个参数只有self
在类中:
def print_address(self):
print '{}: {},{}'.format(self.street_name,self.x,self.y)
然后要避免NameError
,请在变量前添加self.
。