関数に同じパラメータをn回渡す方法はありますか?
例えば:
if len(menu) == 1:
gtk.ListStore(str)
elif len(menu) == 2:
gtk.ListStore(str, str)
elif len(menu) == 3:
gtk.ListStore(str, str, str)
このようなものですが、「自動」...
関数に同じパラメータをn回渡す方法はありますか?
例えば:
if len(menu) == 1:
gtk.ListStore(str)
elif len(menu) == 2:
gtk.ListStore(str, str)
elif len(menu) == 3:
gtk.ListStore(str, str, str)
このようなものですが、「自動」...
あなたの言いたいことは次のとおりです。
gtk.ListStore(*menu)
シーケンスは、関数呼び出しの位置引数に分割できます。感嘆符は、位置引数の最後に配置する必要があります。つまり、次のようになります。
foo(1, 2, *bar)
大丈夫ですが、できません
foo(1, *bar, 2)
def ListStore(*str_collection): #collect arguments passed into str_collection which is a tuple
for s in str_collection:
print(s)
ListStore("A","B","C")
出力:
>>>
A
B
C
str_collection
タイプがあります:
>>>
<type 'tuple'>
次の構文を使用します。
gtk.ListStore(*[str] * len(menu))