我試圖使用連接到一個數據庫sqllite:如何在命令行中運行Python類方法
class Sqllite_utilities(object):
def __init__(self):
parser = argparse.ArgumentParser()
parser.add_argument("-s","--source", type=str,
help="source table from db")
args = parser.parse_args()
print(args)
source_table= args.source
db_path = "sqlite:///"+settings.SETTINGS_PATH+"\\data.db"
dataset_db = dataset.connect(db_path)
self.dataset_table = dataset_db[source_table]
def missing_ids(self):
for user in self.dataset_table:
print(user['id'])
if __name__ == '__main__':
Sqllite_utilities.missing_ids(sys.argv[1])
當我這樣做:
$ python find_missing_records.py -s test
我得到:
Traceback (most recent call last):
File "find_missing_records.py", line 41, in <module>
Sqllite_utilities.missing_ids(sys.argv[1])
TypeError: unbound method missing_ids() must be called with Sqllite_utilities instance as first argument (got str instance instead)
(contact2E)
我做錯了什麼?
謝謝你的作品。關於「很明顯,你必須在能夠使用實例方法(沒有static方法或類方法裝飾器的方法)之前創建對象的實例」,你是否說類和靜態方法不需要類是首先實例化,但其他方法呢? – user61629
是的,你可以使用沒有任何實例的類/靜態方法。 –
謝謝,這有助於我的理解。 – user61629