当我尝试将一个类附加到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
需要帮助!
答案 0 :(得分:1)
您需要先为name和longname分配一些内容,然后才能使用它们:
name = 'foo'
longname = 'foo bar'
c=Name(name, longname)
c.func()
但我用我的功能做到了这一点?
没有
name
与全局name
不同。 我觉得将func
方法移到类定义中是没有意义的。你说的代码是一种更好的方法。