导入的类上的NameError

时间:2013-09-01 16:41:36

标签: python python-3.x

如何摆脱这个NameError

main.py

from com.domain.model import Employee

e1 = Employee("")

model.py

class Person(object):
    def __init__(self,fname):
        setfname(fname)
    def setfname(fname): self._fname = fname

class Employee(Person):
    def __init__(self,fname): super(Employee,self).__init__(fname)

  

NameError: global name 'setfname' is not defined


main.py

com/

- domain/

---- model.py

1 个答案:

答案 0 :(得分:3)

setfname限定为self.setfname。除此之外,实例方法setfname应该有self作为第一个参数。

class Person(object):
    def __init__(self, fname):
        self.setfname(fname)
    #   ^^^^^
    def setfname(self, fname):
    #            ^^^^^^
        self._fname = fname