python 类变量 none 内存泄露_“NoneType”对象没有属性,引用类变量在\u init之前声明__...

我使用Flask和SQLAlchemy在搜索请求和解析数据之间创建一个1对1的关系。一旦用户检查了搜索结果,他们就可以单击“继续”来解析数据(并创建一个数据类实例)。但是,我不确定如何在__init__引用之前引用类变量。我希望我的Data实例有一个请求-响应对象r。在

主叫代码(视图.py)公司名称:search = Search(form) # create source result

search.author = g.user

db.session.add(search)

db.session.commit()

...

data = Data()

data.search_id = this_search.id

db.session.add(data)

db.session.commit()

搜索类(模型.py)公司名称:

^{pr2}$

数据类(模型.py)公司名称:class Data(db.Model):

id = db.Column(db.Integer, primary_key=True)

search_id = db.Column(db.Integer, db.ForeignKey('search.id'))

search = db.relationship('Search', backref="information")

r = None

def __init__(self):

self.r = requests.get(self.search.url)

我得到的错误是:AttributeError: 'NoneType' object has no attribute 'url'

很明显,我不能在声明Data.search变量之前创建self.r,因为错误表明它是NoneType类型。我不确定创建这样的新变量的正确格式应该是什么。如果我将self.r声明移动到初始化后调用的类方法,则代码可以工作。谢谢!在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值