工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Python

Python での匿名クラスとオブジェクトの探索

Python の組み込み type() 関数は、オブジェクトが属するクラスを返します。 Python では、クラスは、組み込みクラスとユーザー定義クラスの両方が class 型のオブジェクトです。

class myclass:
 def __init__(self):
 self.myvar=10
 return
 
obj = myclass()
print ('class of int', type(int))
print ('class of list', type(list))
print ('class of dict', type(dict))
print ('class of myclass', type(myclass))
print ('class of obj', type(obj))

次の出力が生成されます-

class of int <class 'type'>
class of list <class 'type'>
class of dict <class 'type'>
class of myclass <class 'type'>

type() には次のように 3 つの引数バージョンがあります-

構文

newclass=type(name, bases, dict)

上記の構文を使用すると、クラスを動的に作成できます。関数型の 3 つの引数は次のとおりです。 −

匿名クラスの作成

上記のバージョンの type() 関数を使用して匿名クラスを作成できます。 name 引数は null 文字列で、2 番目の引数はオブジェクト クラスの 1 つのクラスのタプルです (Python の各クラスはオブジェクト クラスから継承されることに注意してください)。特定のインスタンス変数を 3 番目の引数の辞書として追加します。現時点では空のままにしておきます。

anon=type('', (object, ), {})

匿名オブジェクトの作成

この匿名クラスのオブジェクトを作成するには-

obj = anon()
print ("type of obj:", type(obj))

結果は、オブジェクトが匿名クラスであることを示します。

type of obj: <class '__main__.'>

匿名クラスと匿名オブジェクトの例

インスタンス変数やインスタンス メソッドを動的に追加することもできます。この例を見てください -

def getA(self):
 return self.a
obj = type('',(object,),{'a':5,'b':6,'c':7,'getA':getA,'getB':lambda self : self.b})()
print (obj.getA(), obj.getB())

次の出力が生成されます-

5 6

Python

  1. マスター Python メタプログラミング:高度なメタクラス技術
  2. Python-モジュール
  3. Python タイムスタンプを日時に変換 (およびその逆) – クイックガイド
  4. PyUnit チュートリアル:Python ユニット テスト フレームワーク (例付き)
  5. Python JSON:JSON ファイルのエンコード (ダンプ)、デコード (ロード)、読み取り
  6. Python ファイルが存在するかどうかを確認します。 Python でディレクトリが存在するかどうかを確認する方法
  7. Python 文字列の長さ | len() メソッドの例
  8. 例を含む Python Lambda 関数
  9. Python 再帰
  10. Pillow を使用した Python 画像処理
  11. パイソン セット