Search code examples
pythonself

python - self - required positional argument


here is my code:

my file which I start:

 from SQLhandler import SQLhandler 
 D = SQLhandler.loadProject(4711)

a part of my SQLhandler file:

class SQLhandler(object):
   db = pymysql.connect(... )

   def loadProject(self, project_id):
    #do some stuff

I want to use db in other functions, so I put it on the class level and added a "self" to loadProject. Now the second line in my start file throws an error:

"loadProject() missing 1 required positional argument: 'project_id'"

What's wrong with my code?


Solution

  • Within your class definition you need to have a def __init__(self, ... params): function that tells how to initialize a new instance. Try including something along the lines of

    def __init__(self, project_id):
        self.project_id = project_id