>>> class Mylist(list,metaclass=ListMetaclass):
pass
>>> L=Mylist()
>>> L.add(1)
>>> L
[1]
>>> class User(Model):
id=IntegerField('id')
name=StringField('username')
email=StringField('email')
password=StringField('password')
Traceback (most recent call last):
File "<pyshell#22>", line 1, in <module>
class User(Model):
NameError: name 'Model' is not defined
>>> class User(Model):
id=IntegerField('id')
name=StringField('username')
email=StringField('email')
password=StringField('password')
SyntaxError: unexpected indent
>>> class User(Model):
id=IntegerField('id')
name=StringField('username')
email=StringField('email')
password=StringField('password')
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
class User(Model):
NameError: name 'Model' is not defined
>>> class Field(object):
def __init__(self,name,column_type):
self.name=name
self.column_type=column_type
def __str__(self):
return '<%s:%s>'%(self.__class__.__name__,self.name)
>>> class StringField(Field):
def __init__(self,name):
super(StringField,self).__init(name,'varchar(100)')
class IntegerField(Field):
SyntaxError: unindent does not match any outer indentation level
>>> class StringField(Field):
def __init__(self,name):
super(StringField,self).__init(name,'varchar(100)')
>>> class IntegerField(Field):
def __init__(self,name):
super(IntegerField,self).__init__(name,'bigint')
>>> class ModelMetaclss(type):
def __new__(cls,name,bases,attrs):
if name=='Model':
return type.__new__(cls,name,bases,attrs)
print('Found model:%s'%name)
mappings=dict()
for k,v in attrs.items()
SyntaxError: invalid syntax
>>> class ModelMetaclss(type):
def __new__(cls,name,bases,attrs):
if name=='Model':
return type.__new__(cls,name,bases,attrs)
print('Found model:%s'%name)
mappings=dict()
for k,v in attrs.items():
if isinstance(v,Field):
print('Found mapping:%s'%(k,v))
mappings[k]=v
for k in mappings.keys():
attrs.pop(k)
attrs['__mappings__']=mappings
attrs['__table']=name
return type.__new__(cls,name,bases,attrs)
>>> class Model(dict,metaclass=ModelMetaclass):
def __init__(self,**kw):
super(Model,self).__init__(**kw)
def __getattr__(self,key)
SyntaxError: invalid syntax
>>> class Model(dict,metaclass=ModelMetaclass):
def __init__(self,**kw):
super(Model,self).__init__(**kw)
def __getattr__(self,key):
try:
return self[key]
except KeyError:
raise AttributeError(r"'Model'object has no attribute'%s'"%key)
def __setattr__(self,key,value):
self[key]=value
def save(self):
fields=[]
params=[]
args=[]
for k,v in self.__mapping__.items():
fields.append(v.name)
params.append('?')
args.append(getattr(self,k,None))
sql='insert into %s (%s) value (%s)'%(self.__table__,','.join(fields),','.join(params))
print('SQL:%s'%s sql)
SyntaxError: invalid syntax
>>> class Model(dict,metaclass=ModelMetaclass):
def __init__(self,**kw):
super(Model,self).__init__(**kw)
def __getattr__(self,key):
try:
return self[key]
except KeyError:
raise AttributeError(r"'Model'object has no attribute'%s'"%key)
def __setattr__(self,key,value):
self[key]=value
def save(self):
fields=[]
params=[]
args=[]
for k,v in self.__mapping__.items():
fields.append(v.name)
params.append('?')
args.append(getattr(self,k,None))
sql='insert into %s (%s) value (%s)'%(self.__table__,','.join(fields),','.join(params))
print('SQL:%s'%s sql)
SyntaxError: invalid syntax
>>> def foo():
r=some_function()
if r=(-1):
SyntaxError: invalid syntax
>>> def foo():
r=some_function()
if r==(-1):
return (-1)
return r
>>> def bar():
r=foo()
if r==(-1):
print('Error')
else
>>> x=bar()
Traceback (most recent call last):
File "<pyshell#97>", line 1, in <module>
x=bar()
File "<pyshell#96>", line 2, in bar
r=foo()
File "<pyshell#88>", line 2, in foo
r=some_function()
NameError: name 'some_function' is not defined
>>> bar()
Traceback (most recent call last):
File "<pyshell#98>", line 1, in <module>
bar()
File "<pyshell#96>", line 2, in bar
r=foo()
File "<pyshell#88>", line 2, in foo
r=some_function()
NameError: name 'some_function' is not defined
>>> try:
print('try..')
r=10/0
print('result:',r)
except ZeroDivisionError as e:
SyntaxError: unindent does not match any outer indentation level
>>> try:
print('try..')
r=10/0
print('result:',r)
except ZeroDivisionError as e:
print('except:',e)
finally:
print('finally..')
print('END')
SyntaxError: invalid syntax
>>> try: print('try..')
r=10/0
print('result:',r)