我试图使用本教程中的代码段: http://newcoder.io/scrape/part-4/
以下是具有类定义的文件:
[2,3,2]
当我调用Test.add_item(args)时,会生成以下错误。
from sqlalchemy.orm import sessionmaker
from .models import Deals, db_connect, create_deals_table
class Test(object):
def __init__(self, args):
"""
Initializes database connection and sessionmaker.
Creates deals table.
"""
engine = db_connect()
create_deals_table(engine)
self.Session = sessionmaker(bind=engine)
def add_item(self):
session = self.Session()
tester = Deals(title="test 3 deal",location='here', price=2.00)
session.add(tester)
session.commit()
当我运行与没有类定义的python脚本相同的代码时,代码工作正常并添加了一行。
答案 0 :(得分:1)
您正在尝试在类本身上调用实例方法:Test.add_item(args)
您将方法定义为仅具有self
且没有参数。这意味着您需要在类的实例上调用它,并且不传递任何参数
test = Test()
test.add_item()
您收到该特定错误的原因是因为您使用list参数args
调用该函数作为参数self
,然后self.Session()
行是尝试从Session
对象获取属性args
。您需要修改方法定义或对其的调用(例如,def add_item(self, args):
)