调用类*简单代码*

时间:2017-01-11 23:00:25

标签: python class

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个)

有人可以解释一下我做错了吗?

5 个答案:

答案 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.