|
直接贴代码了:
import inspect
import dis
def howmany():
f=inspect.currentframe()
f=f.f_back
dis.disassemble(f.f_code,f.f_lasti)
n=ord(f.f_code.co_code[f.f_lasti+4])
print n
return range(n)
if __name__=='__main__':
x,y=howmany()
print x,y
此次的dis是我用来调试用的,相当于是反汇编的一个工具。
不过此代码可能不够灵活,至少现在我还没解决。
我要做的就是在等号左边任给几个值,然后howmany会自动返回0到n-1。
看起来的确没什么意思。不过调试了一段时间,所以贴出来看看。
下面是交互下的。
>>> import inspect
>>> def howmany():
f=inspect.currentframe().f_back
return range(ord(f.f_code.co_code[f.f_lasti+4]))
>>> x,y=howmany()
>>> x
0
>>> y
1
>>> x,y,z=howmany()
>>> x
0
>>> y
1
>>> z
2
>>> x,y,z,t=howmany()
>>> x,y,z,t
(0, 1, 2, 3)
>>> |
|
|