Patt Mehta
Patt Mehta

Reputation: 4204

NameError on imported class

How to get rid of this 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

Upvotes: 2

Views: 121

Answers (1)

falsetru
falsetru

Reputation: 369494

Qualify setfname as self.setfname. In addition to that, the instance method setfname should have self as the first parameter.

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

Upvotes: 3

Related Questions