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

作者: TuCH (謬客)   2018-07-04 15:10:16
※ 引述《wayne670225 (北極熊在英國)》之銘言:
: 請問一下於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'
: 請問大家該如何更改我的程式 ?
self.currentint = {'debug' : 'on'}
def varify_currentlyini(self, key_value):
key, value = key_value
self.currentini[str(key).split('$')[1]] =str(value)
主要是傳入的時候不能直接宣告他是一個tuple
所以把tuple設成一個變數
讀進來的時候再拆開
以下是範例
def demo(c):
a,b = c
print(b)
demo(('Hello','world'))
作者: pmove (金疾檸檬)   2018-07-04 21:45:00
lib2to3的確就是這樣轉的沒錯,可是如果是用lib2to3轉的應該不會有這個問題才對,有點懷疑原發問者故意製造這問題的
作者: HenryLiKing (HenryLiKing)   2018-07-04 22:51:00
學到了!原來不行一開始就宣告為tuple!!!!!!!!!!
作者: wayne670225 (北極熊在英國)   2018-07-12 08:46:00
多謝大家, python 3.7 傳進去的東西就不能是tuple多謝 TuCH demo的範例, 問題已解決https://www.python.org/dev/peps/pep-3113/

Links booklink

Contact Us: admin [ a t ] ucptt.com