Beginner question!

kyosohma at gmail.com kyosohma at gmail.com
Fri Dec 21 11:34:49 EST 2007


> Traceback (most recent call last):
>    File "/home/pofuk/MzMFIleShare/sharePanel.py", line 130, in share
>      self.scanDirsAndFiles(dirPath)
>    File "/home/pofuk/MzMFIleShare/sharePanel.py", line 158, in
> scanDirsAndFiles
>      sql.insertData.insert("files", data)
> TypeError: unbound method insert() must be called with insertData
> instance as first argument (got str instance instead)
>
> share.py


<snip>


>         def scanDirsAndFiles(self, dirPath):
>                 for item in os.listdir(dirPath):
>                         if os.path.isdir(os.path.join(dirPath, item)):
>                                 scanDirsAndFiles(os.path.join(dirPath, item))
>                         if os.path.isfile(os.path.join(dirPath, item)):
>                                 user_name = login.getUserName()
>                                 fileName = item
>                                 fileSize = os.path.getsize(os.path.join(dirPath, item))
>                                 filePathLocal = os.path.join(dirPath, item)
>                                 filePathFTP = ""
>                                 currentLocation = "Local"
>                                 FTP_valid_time = 7
>                                 uploaded = ""
>                                 lastModified = "NOW()"
>                                 lastVerified = "NOW()"
>                                 fileType = "file"
>                                 fileCategory = "Ostalo"
>
>                                 data = [fileName, fileSize, filePathLocal, filePathFTP,
> currentLocation, FTP_valid_time, uploaded, lastModified, lastVerified,
> fileType, fileCategory]
>
>                                 sql.insertData.insert("files", data)
>


<snip>


> class insertData:
>         def insert(self, dataTable, data):
>                 conn = self.openConnection.openConnection()
>                 cursor = conn.cursor()
>                 sql ="INSERT INTO "+dataTable+" (user_name, file_name, file_size,
> file_path_local, file_path_FTP, curent_location, FTP_valid_time,
> uploaded, last_modified, last_verified, file_type, file_category) VLAUES
> "+data
>                 cursor.execute(sql)
>                 conn.Close()

It doesn't look like you are instantiating the insertData class. You
would need to do something like:

# untested
foo = insertData()
foo.insert("files", data)


But I agree with Chris. You really do need to go through a tutorial on
using classes and following Python naming conventions. Dive Into
Python and some of the other online resources are very helpful.

This is something that I have trouble with myself since wxPython uses
CamelCase for classes and methods/functions and and most
recommendations for plain Python seem to only want CamelCase for
classes and something like myFunct or myMethod for the other objects.

Mike



More information about the Python-list mailing list