2017-02-22 9 views
0

私はPythonでLoggingモジュールを使用する方法を頭に入れようとしています。後続のモジュール呼び出しですでにインポートされたモジュールをPythonで使用する方法

私はメインのコード下記の持っている:

import logging 
import First 
logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(levelname)s %(message)s',filename=r'C:\Users\bhatsubh\Desktop\Everything\Codes\Python\Logs\automation.log',filemode='a') 
logging.debug('A debug message') 
logging.info('Some information') 
logging.warning('A shot across the bows') 
logging.error('Committed a blunder') 
obj = First.Demo("Subhayan",75000) 
print (obj.getSal()) 

First.pyモジュールは以下のコードが含まれます。

class Demo: 
    def __init__(self,Name,salary): 
     logging.info("Inside Demo init") 
     self.name = Name 
     self.salary = salary 
    def getSal(self): 
     logging.info("Inside Demo getSal") 
     sal = self.salary * 100 
     return sal 

を今私が一番上にモジュールロギングをインポートすることが可能な何らかの方法があります私のモジュールファイルのレベルを確認し、残りの呼び出しでそれを他のすべてのファイルで再度インポートせずに使用します。

ありがとうございました。

+0

これは実行できますが、両方のファイルでインポートする方がよいでしょう。 –

+0

Stevenさん、ありがとうございます。もう少し詳しく教えてください。私は、両方のファイルをインポートするのがベストプラクティスであると思うが、知識のためには、他の作業はどうなるのだろうか。 –

答えて

0

本当に両方のファイルをインポートするだけです。 Pythonがどのようにインポートを処理するか説明されていますhere

もしそうなら、あなたは本当にそうすることができます。

First.py

math = None # declare a name for your module 

def func(): 
    print(math.pi) 

main.py

import First 
import math # using math module as example 

test2.math = math 
test2.func() 

は今、この問題では、まず、今ではmath属性セットです持つに依存しているということです。これが問題であれば、それをに変更することができます。

def func(): 
    print(math.pi) 

if __name__ == '__main__': 
    import math 
else: 
    math = None 
関連する問題