2018年7月17日火曜日

Python3 でオブジェクトがどのモジュールかどのクラスかを探す方法

概要

例えばライブリを使っている場合にどのモジュールから作成されたオブジェクトなのかわからなくなることがあると思います
そんな場合に便利かなと思います

環境

  • macOS 10.13.5
  • Python 3.6.5

サンプルコード

  • vim car.py
class Car(object):
    def __init__(self, name , color):
        self.name = name
        self.color = color
        self.dist = 0

    def run(self):
        self.dist += 10

if __name__ == "__main__":
    c = Car('fit', 'color')
    print(c.__module__ + "." + c.__class__.__name__)

最後の print(c.__module__ + "." + c.__class__.__name__) で表示しています

  • python3 car.py

上記の場合は __main__.Car と表示されます

別のコードから参照すると

  • vim car_main.py
from car import Car

c = Car('fit', 'black')
print(c.__module__ + "." + c.__class__.__name__)

これだと car.Car と表示されます

参考サイト

0 件のコメント:

コメントを投稿