2016-08-22 7 views
1

を使用しています。そのため、ユーザーが選択した可変ブランドを使用しようとしています。この変数はPythonで与えられたモジュールを呼び出すために使われます。現在7行目に 'apple.solutions()'が表示されています。しかし、私は本質的に、 'brand.solutions()'の行で何かを使用できるようにしたいと思っていますが、これは属性が必要なので動作しません。私は可変ブランドに基づいてモジュールを選択するソリューションを探しています。私は、あらゆる解決策やアドバイスに感謝します。おかげで、モジュールインポートの変数を渡して

主なプログラム:

import apple, android, windows 

brands = ["apple", "android", "windows"] 
brand = None 

def Main(): 
    query = input("Enter your query: ").lower() 
    brand = selector(brands, query, "brand", "brands") 
    solutions = apple.solutions() 
    print(solutions) 

Apple.pyモジュールファイル(メインプログラムと同じディレクトリ):

def solutions(): 
    solutions = ["screen", "battery", "speaker"] 
    return solutions 

答えて

2
#!/usr/bin/env python3 
# -*- coding: utf-8 -*- 

import apple, android, windows 

brands = ["apple", "android", "windows"] 

def selector(brands, query): 
    if query in brands: 
     exec("import %s as brand" % query) 
    else: 
     brand = None 

    return brand 


def Main(): 
    query = raw_input("Enter your query: ").lower() 
    brand = selector(brands, query) 
    solutions = brand.solutions() 
    print(solutions) 


if __name__ == '__main__': 
    Main() 

私は、動的モデル

+0

こんにちはをインポートするexec機能を使って、簡単な方法を持っているあなたのアドバイスをありがとう!私は現在、エラー処理側を扱うセレクタ関数を持っていますが、所定のブランド変数でexec関数を実装することは可能でしょうか?現在のコード:http://pastebin.com/c876C3Qnありがとう、サム –

0

何を探してるんすることができることは自分のメインの呼び出しです()関数:

if __name__ == "__main__": 
    Main() 

上記のコードは、メインプログラムの最後に表示されます。メインプログラムがインポートされているかどうかをチェックし、インポートされていない場合はMain()関数を実行し、スタンドアロンプ​​ログラムとして実行します。

関連する問題