私は、Truthy/Falsy値を持っているかどうかチェックしたいtkinterエントリと対応するStringVarのdictを持っています。ちょうどビルトインを使用して、よりクリーンでニシキヘビ方法はありall(dict.values())を通して関数を適用できますか?
>>> from tkinter import *
>>> root=Tk()
>>> row={'new':{}, 'old':{}}
>>> row['new']['data']=StringVar(value='something')
>>> row['new']['non_data']=StringVar(value='')
>>>
>>> def my_all(StringVarIter):
... for element in StringVarIter:
... if not element.get():
... return False
... return True
...
>>> my_all(row['new'].values())
False
>>> row['new']['non_data']=StringVar(value='something else')
>>> my_all(row['new'].values())
True
と:私は、値にアクセスするために)STRINGVARを反復処理とに.getを(使用できること)(私はオフにすべての私の独自のバージョンを書くことができます知っていますtkinter関数ですか?あなたが実際にmap(StringVar.get(), row['new'].values())
と本当に近かった
mapの最初の引数は、各値を単一の引数としてとる関数である必要があります。 'map(lambda sv:sv.get()、row ['new']。values())' – jonrsharpe
ありがとう@jonrsharpeが動作します。それを答えてください、私はそれを受け入れるでしょう。 – Pepi