Python のクラスもオブジェクトです

メタクラスを理解する前に、まず Python のクラスについてさらに理解します。ほとんどのプログラミング言語では、クラスはオブジェクトの生成方法を記述するために使用されるコード セグメントのセットです。これはPythonでも同様です。

class ObjectCreator(object):
    pass
mObject = ObjectCreator()
print(mObject)

出力結果:

<__main__.ObjectCreator object at 0x00000000023EE048>

ただし、Python のクラスはほとんどのプログラミング言語とは異なり、Python ではクラスをオブジェクトとして理解できます。はい、間違いありません、それはオブジェクトです。 ######なぜ?

キーワード class が使用されている限り、Python インタープリターは実行中にオブジェクトを作成するためです。

例:

class ObjectCreator(object):
    pass

プログラムがこのコードを実行すると、オブジェクトがメモリ内に作成され、名前は ObjectCreator になります。このオブジェクト (クラス) 自体がオブジェクト (クラス インスタンス) を作成する機能を持っており、それがクラスである理由です。ただし、その本質はまだオブジェクトであるため、次の操作を実行できます:

class ObjectCreator(object):
    pass
def echo(ob):
    print(ob)
mObject = ObjectCreator()
print(mObject)
# 可以直接打印一个类,因为它其实也是一个对象
print(ObjectCreator)
# 可以直接把一个类作为参数传给函数(注意这里是类,是没有实例化的)
echo(ObjectCreator)
# 也可以直接把类赋值给一个变量
objectCreator = ObjectCreator
print(objectCreator)

出力結果は次のとおりです:

<__main__.ObjectCreator object at 0x000000000240E358>
<class '__main__.ObjectCreator'>
<class '__main__.ObjectCreator'>
<class '__main__.ObjectCreator'>
学び続ける
  • おすすめコース
  • コースウェアのダウンロード
現時点ではコースウェアはダウンロードできません。現在スタッフが整理中です。今後もこのコースにもっと注目してください〜