我正在做这样的事情:
class Class(object):
def __init__(self):
self.var=#new instance name string#
如何使我的实例的__ init __方法使用实例名称字符串'c'?以防万一:
c=Class()
我希望c.var等于'c'。
感谢您的回复,我正在实现持久性,而Class是持久对象的类。我希望__ init __在以下情况下向数据库添加条目:
c=Class()
然后,假设:
del c
稍后的:
c=Class()
如果已存在条目“c”,则sholuld使用数据库中的数据创建实例,否则创建新条目。
感谢您的回复,我正在实现持久性,而Class是持久对象的类。我希望__ init __在以下情况下向数据库添加条目:
c=Class()
然后,假设:
del c
稍后的:
c=Class()
如果已存在条目“c”,则sholuld使用数据库中的数据创建实例,否则创建新条目。
发布于 2018-09-21 13:41:38
要保留数据对象,您需要使用数据库记录的唯一ID。
pesudo代码,因为我不知道你正在使用什么数据库模块
import db # assume this is your db module
class Class(object):
def __init__(self):
self.id = None
self.name = None
def get_by_id(self, id):
records = db.execute('select * from table where id=%s' % str(id))
if records:
self.id = records[0]['id']
self.name = records[0]['name']
def save(self):
db.execute('update table set name=%s where id=%s' % (self.name, str(self.id)))
再次,这是伪代码,我正在使用的字符串注入技术不建议它是相当不安全的,它只是为了说明如何持久使用带有db的类。
发布于 2018-09-21 14:03:17
我不认为这是可能的,因为在完全构造和初始化对象之后,对新实例的变量的赋值会出现,因此您不知道它将在init方法中分配给它的变量名称
https://stackoverflow.com/questions/-100000789
复制相似问题