2

如何摆脱这个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

4

1 回答 1

3

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

class Person(object):
    def __init__(self, fname):
        self.setfname(fname)
    #   ^^^^^
    def setfname(self, fname):
    #            ^^^^^^
        self._fname = fname
于 2013-09-01T16:49:27.067 回答