簡體   English   中英

根據用戶輸入(結合類)使用實例執行函數[Python]

[英]Execute a function with an instance based on user input (in conjunction with a class) [Python]

當我在做一個小項目時,我遇到了一些麻煩。 我想用某個類的某些實例執行一個函數,但是用戶需要輸入它們。 我知道您可以在代碼本身中輸入實例,例如:

run(instance1,instance2)

偽代碼中的一個小例子。 (我知道代碼只是為了說明這一點而已。)

class main()
    def __init__(self, a, b ,c):
        self.a = a
        self.b = b
        self.c = c
        self.d = d

test1 = main(10, 443, 5, 46)
test2 = main(340, 3, 554, 2134)
test3 = main(140, 3, 98, 6)
test4 = main(0, 345, 7, 46)

def check(instance_a, insance_b):
    print instance_a.b, instance_b.c

def run(instance_a, instance_b):
    while True:
       check(instance_a, instance_b)

instance_a = raw_input('set instance a')
instance_b = raw_input('set instance b')

run(instance_a, instance_b)

這個想法是,用戶可以輸入test1,test2,test3,test4,然后程序將以所選的2個符號執行所有功能。 這是可能嗎? 還是您必須使用if語句手動選擇所有選項? 提前謝謝了!

為此,請按名稱而不是單獨的變量名稱將實例存儲在字典中:

tests = {'test1': main(...), 'test2': main(...), ...}

然后,您可以根據用戶輸入輕松訪問它們:

instance_a = raw_input('set instance a')
instance_b = raw_input('set instance b')
run(tests[instance_a], tests[instance_b])

並添加一些簡單的有效輸入檢查:

if instance_a not in tests:
    # complain to user

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM