[問題]關於移植 code from python 2.7 to 3.6

作者: wayne670225 (北極熊在英國)   2018-07-03 21:26:03
請問一下於python 2.7 中
self.currentini = {'debug' : 'on'}
def verify_currentlyini(self,(key,value)):
self.currentini[str(key).split('$')[1]]=str(value)
但是更改python 3.6
self.currentini = {'debug' : 'on'}
def verify_currentlyini(self,key,value):
self.currentini[str(key).split('$')[1]]=str(value)
TypeError: modify_currentlyini() missing 1 required positional argument:
'value'
請問大家該如何更改我的程式 ?
作者: HenryLiKing (HenryLiKing)   2018-07-03 21:33:00
參數改成 tuple嗎?
作者: djshen (djshen)   2018-07-03 23:32:00
可以參考2to3怎麼改
作者: adrianshum (Alien)   2018-07-04 09:14:00
和2 to 3 沒關係吧,method signature 整個不一樣了
作者: pmove (金疾檸檬)   2018-07-04 09:27:00
推1F,改成(key, value)
作者: djshen (djshen)   2018-07-04 11:18:00
不就是因為python3拿掉這種unpacking才要改嗎不然他原本就是這樣寫阿
作者: pmove (金疾檸檬)   2018-07-04 13:16:00
傳進去的東西就不能是tuple , 而要拆開來傳
作者: djshen (djshen)   2018-07-04 14:26:00
改function容易還是改所有用到function的地方容易?哪有什麼傳進去的東西就不能是tuple
作者: Sunal (SSSSSSSSSSSSSSSSSSSSSSS)   2018-07-04 15:08:00
function用一個參數接 在function裡面分別取出不就好了
作者: splasky (splasky)   2018-07-04 22:33:00
你可以用decorator
作者: wayne670225 (北極熊在英國)   2018-07-12 08:42:00
多謝大家, python 3.7 傳進去的東西就不能是tuple最後拆開來傳,結果沒有問題https://www.python.org/dev/peps/pep-3113/

Links booklink

Contact Us: admin [ a t ] ucptt.com