# lz 最近看廖雪峰的 python3 教程实战, 写代码时遇到一个问题, 此为背景
暂时只贴部分代码,其余部分代码放在 github 上:
https://github.com/hfutcbl/python-liaoxuefeng_practice/tree/master/aiohttpPractice
python 版本:
python3 --version
Python 3.5.2
代码:
类的代码
class User(Model):
__table__ = 'users'
id = StringField(primary_key=True, default=next_id, ddl='varchar(50)')
email = StringField(ddl='varchar(50)')
passwd = StringField(ddl='varchar(50)')
admin = BooleanField()
name = StringField(ddl='varchar(50)')
image = StringField(ddl='varchar(500)')
created_at = FloatField(default=time.time)
调用代码
u = User(name='Test1', email='[email protected]', passwd='1234567890', image='about:blank')
......
def getValueOrDefault(self, key):
print('email:%s, passwd:%s, name:%s, image:%s' % (self['email'], self['passwd'], self['name'], self['image']))
print(self.email, self.passwd, self.name, self.image, '\n','self:', self)
结果:
email:[email protected], passwd:1234567890, name:Test1, image:about:blank
[email protected] <StringField, varchar(50):None> <StringField, varchar(50):None> <StringField, varchar(500):None>
self: {'email': '[email protected]', 'name': 'Test1', 'image': 'about:blank', 'passwd': '1234567890'}
用 self[key] 访问可以正常获取数据,但用 self.key 只能获得传入的 4 个参数中的其中一个正确数据,比如这次是 email ,每次运行能够获取正确数据的 key 值不一样,运行多次亲测:
email:[email protected], passwd:1234567890, name:Test1, image:about:blank
<StringField, varchar(50):None> 1234567890 <StringField, varchar(50):None> <StringField, varchar(500):None>
self: {'passwd': '1234567890', 'email': '[email protected]', 'image': 'about:blank', 'name': 'Test1'}
有知道的大神能解答下吗?
暂时只贴部分代码,其余部分代码放在 github 上:
https://github.com/hfutcbl/python-liaoxuefeng_practice/tree/master/aiohttpPractice
python 版本:
python3 --version
Python 3.5.2
代码:
类的代码
class User(Model):
__table__ = 'users'
id = StringField(primary_key=True, default=next_id, ddl='varchar(50)')
email = StringField(ddl='varchar(50)')
passwd = StringField(ddl='varchar(50)')
admin = BooleanField()
name = StringField(ddl='varchar(50)')
image = StringField(ddl='varchar(500)')
created_at = FloatField(default=time.time)
调用代码
u = User(name='Test1', email='[email protected]', passwd='1234567890', image='about:blank')
......
def getValueOrDefault(self, key):
print('email:%s, passwd:%s, name:%s, image:%s' % (self['email'], self['passwd'], self['name'], self['image']))
print(self.email, self.passwd, self.name, self.image, '\n','self:', self)
结果:
email:[email protected], passwd:1234567890, name:Test1, image:about:blank
[email protected] <StringField, varchar(50):None> <StringField, varchar(50):None> <StringField, varchar(500):None>
self: {'email': '[email protected]', 'name': 'Test1', 'image': 'about:blank', 'passwd': '1234567890'}
用 self[key] 访问可以正常获取数据,但用 self.key 只能获得传入的 4 个参数中的其中一个正确数据,比如这次是 email ,每次运行能够获取正确数据的 key 值不一样,运行多次亲测:
email:[email protected], passwd:1234567890, name:Test1, image:about:blank
<StringField, varchar(50):None> 1234567890 <StringField, varchar(50):None> <StringField, varchar(500):None>
self: {'passwd': '1234567890', 'email': '[email protected]', 'image': 'about:blank', 'name': 'Test1'}
有知道的大神能解答下吗?