尝试将类附加到对象时获取错误消息

时间:2011-10-19 21:26:31

标签: python class methods

当我尝试将一个类附加到python中的对象时,我遇到了一些问题。我有一个文本文件'文件',它被分成每行的列表。程序将读取每一行并打印一个名称和一个长名称。想象一下,文本文件看起来像这样:

“John'\ n'John Travolta”(...)

这是我的一些代码:

class Name:
  def __init__(self, name, longname):
   self.name=name
   self.longname=longname
  def __str__(self):
   s="Name:"+self.name
   s+="\n Longname:"+self.longname
  def func():
   for line in file:
       name=line[:1]
       longname=line['\n':]
c=Name(name, longname)
c.func()

我收到的错误信息是我的'name'和'longname'没有定义,但我用我的函数做了这个??? :(

如果我将该函数放在类之外,它就可以工作,如下所示:

def func():
 for line in file:
  name=line[:1]
  longname=line['\n':]
  c=Name(name, longname)
  print c

需要帮助!

1 个答案:

答案 0 :(得分:1)

您需要先为name和longname分配一些内容,然后才能使用它们:

name = 'foo'
longname = 'foo bar'
c=Name(name, longname)
c.func()

  

但我用我的功能做到了这一点?

没有

  • 首先,你还没有调用你的功能。在出现错误的行之后,函数调用是
  • 其次,该功能有自己的范围。 name与全局name不同。

我觉得将func方法移到类定义中是没有意义的。你说的代码是一种更好的方法。