Beginner question!

SMALLp pofuk at email.t-com.hr
Fri Dec 21 12:06:21 EST 2007


kyosohma at gmail.com wrote:
>> 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
Thanks! I solved the problem. And I thing i understand now.



More information about the Python-list mailing list