【发布时间】:2017-05-26 22:02:38
【问题描述】:
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()
我收到以下错误消息
Traceback(最近一次调用最后一次):
文件“”,第 1 行,在
k.print_address()
TypeError: print_address() 不带参数(给定 1 个)
谁能解释一下我做错了什么?
【问题讨论】:
-
将
self作为参数添加到方法中 -
方法通过拥有它们的对象作为第一个参数。按照惯例,我们在 Python 中将其称为
self(但def foobar_method(omg_its_me)在语法上是有效的)。另请注意,street_name、x和y未在HouseLocation.print_address中定义。由于方法将它们的所有者作为第一个参数,因此您可以使用它们的属性,但您必须这样引用它们! (self.street_name,self.x,self.y)