web-dev-qa-db-ja.com

Pythonで別のファイルからクラスメソッドを呼び出すにはどうすればよいですか?

私はPythonを学習していて、同じディレクトリに2つのファイルがあります。

_printer.py_

_class Printer(object):
    def __init__(self):
        self.message = 'yo'

    def printMessage(self):
        print self.message

if __name__ == "__main__":
    printer = Printer()
    printer.printMessage()
_

同じディレクトリ内の別のファイル_example.py_からprintMessage(self)メソッドを呼び出すにはどうすればよいですか? この答え は近いと思いましたが、同じファイル内の別のクラスからクラスメソッドを呼び出す方法を示しています。

5
Thomas

インポートして、次のように呼び出す必要があります。

import printer as pr

pr.Printer().printMessage()
3
Gleland

@Glelandの答えは正しいですが、プロジェクト全体でPrinterクラスの単一の共有インスタンスを使用することを考えている場合は、Printerのインスタンス化をif句から移動し、クラスではなくインスタンスをインポートする必要があります。 :

class Printer(object):
    def __init__(self):
        self.message = 'yo'

    def printMessage(self):
        print self.message

printer = Printer()

if __name__ == "__main__":
    printer.printMessage()

さて、他のファイルで:

from printer import printer as pr
pr.printMessage()
1
Christian K.