Python的一个小技巧和Lua的Unpack比较

本文介绍了一个Python中的实用技巧——如何使用星号(*)操作符来解包列表或元组的元素,并将其作为函数参数传递。这一技巧类似于Lua中的unpack功能。通过示例展示了Python中这一特性的工作原理及其应用。

Python的一个小技巧和Lua的Unpack比较

<meta content="SciTE - www.Scintilla.org" name="Generator" id="fegt0"> <script type="text/javascript" language="JavaScript" id="fegt1"> <!-- function symbol(id, sym) { if (id.textContent==undefined) { id.innerText=sym; } else { id.textContent=sym; } } function toggle(id) { var thislayer=document.getElementById('ln'+id); id-=1; var togline=document.getElementById('hd'+id); var togsym=document.getElementById('bt'+id); if (thislayer.style.display == 'none') { thislayer.style.display='block'; togline.style.textDecoration='none'; symbol(togsym,'- '); } else { thislayer.style.display='none'; togline.style.textDecoration='underline'; symbol(togsym,'+ '); } } //--> </script><style type="text/css" id="fegt2"> .S0 { color: #808080; } .S2 { color: #007F7F; } .S5 { font-weight: bold; color: #00007F; } .S8 { font-weight: bold; color: #0000FF; } .S9 { font-weight: bold; color: #007F7F; } .S10 { font-weight: bold; color: #000000; } span { font-family: 'Verdana'; color: #000000; font-size: 10pt; } </style> - classA(object):
- defsetline(self,line):
self.line=line

- defsetitem(self,a,b):
printa,b

- deff(self):
print(type(self.line[:2]))
self.setitem(*self.line[:2]) # 这里的*表示把一个list解成两个参数

a=A()
a.setline([1,2])
a.f()
输出:
>pythonw -u "t.py"
<type 'list'>
1 2

对应之Lua的用法:
<meta content="SciTE - www.Scintilla.org" name="Generator" id="jnak1"> <script type="text/javascript" language="JavaScript" id="jnak2"> <!-- function symbol(id, sym) { if (id.textContent==undefined) { id.innerText=sym; } else { id.textContent=sym; } } function toggle(id) { var thislayer=document.getElementById('ln'+id); id-=1; var togline=document.getElementById('hd'+id); var togsym=document.getElementById('bt'+id); if (thislayer.style.display == 'none') { thislayer.style.display='block'; togline.style.textDecoration='none'; symbol(togsym,'- '); } else { thislayer.style.display='none'; togline.style.textDecoration='underline'; symbol(togsym,'+ '); } } //--> </script><style type="text/css" id="jnak3"> .S0 { color: #FF0000; } .S4 { color: #007F7F; } .S5 { color: #00007F; } .S10 { color: #000000; } .S13 { color: #00007F; background: #F5FFF5; text-decoration: inherit; } span { font-family: 'Verdana'; color: #000000; font-size: 10pt; }</style> - f=function(...)
print(...)
end

t={1,2}
f(unpack(t))

输出:
>luai "t.lua"
1 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值