-1

「 」という名前のメインフォームがあり、「 」に基づいた「 」、「」などmain_formのフォーム名がいくつかあり、「 」によって異なるとします。w_main_formg_main_formmain_formcategory

派生フォームの名前を生成する簡単な方法と、それらを呼び出す方法はありますか。

カテゴリが " iron" の場合、フォーム名は " " である必要がありw_main_form、カテゴリが " coal" の場合、フォーム名は " " である必要がありますg_main_form

4

2 に答える 2

2
>>> main_name = "main_form"
>>> derived_names = []
>>> for prefix in ["w_", "g_"]:
    derived_names.append("%s%s" % (prefix, main_name))


>>> derived_names
['w_main_form', 'g_main_form']

または、リスト内包表記を使用します(私の好みの方法):

>>> derived_names = ["%s%s" % (prefix, main_name) for prefix in ["w_", "g_"]]
>>> derived_names
['w_main_form', 'g_main_form']

f(main_name, data)一般に、同じ原則を自分で適用できるように、関数、 、およびそれdataに提供するの観点から実行したい変換を考えたいと思います。この場合、操作は「prepend」(私は で実装しました"%s%s" % (prefix, main_name)) で、データはすべてプレフィックスでした。

編集:はい。

>>> category_to_prefix = {'iron': 'w_', 'coal': 'g_'}
>>> def category_to_form_name(category):
    return '%s%s' % (category_to_prefix.get(category,""), 'main_form')

>>> category_to_form_name('iron')
'w_main_form'
>>> category_to_form_name('coal')
'g_main_form'
>>> category_to_form_name(None)
'main_form'

それがあなたが探していたものである場合は、賛成票を投じて回答を受け入れてください(上向き矢印と緑色のチェックマークをクリックしてください).

于 2012-07-01T16:41:21.593 に答える
1

これはあなたのコメントが述べたことを行います..

def generate_Name(base, category):
    if category == 'iron':
        derived_name = 'w_'+base
    elif category == 'coal':
        derived_name = 'g_'+base

    return derived_name


iron_form = generate_Name('main_form', 'iron')
coal_form = generate_Name('main_form', 'coal')

print iron_form
print coal_form

与える

w_main_form
g_main_form
于 2012-07-01T16:47:31.443 に答える