[解決済み] Pythonで空のオブジェクトを作成する
2022-02-10 04:57:37
質問
Pythonで空のオブジェクトを定義するためのショートカットはありますか、それとも常にカスタム空のクラスのインスタンスを作成する必要がありますか?
編集部:ダックタイピングに使えるエンプティオブジェクトという意味です。
どのように解決するのですか?
typeを使って、その場で新しいクラスを作成し、インスタンス化することができます。こんな風にね。
>>> t = type('test', (object,), {})()
>>> t
<__main__.test at 0xb615930c>
typeの引数は以下の通りです。クラス名、ベースクラスのタプル、およびオブジェクトの辞書です。辞書には関数(オブジェクトのメソッド)または属性を含めることができます。
最初の行は、実際には次のように短縮できます。
>>> t = type('test', (), {})()
>>> t.__class__.__bases__
(object,)
なぜなら、デフォルトで type は object を継承する新しいスタイル クラスを作成するからです。
type
は、Pythonでは
メタプログラミング
.
しかし、単にオブジェクトのインスタンスを作りたいだけなら。それなら、インスタンスを作ればいいだけです。lejlotが提案するように。
このように新しいクラスのインスタンスを作成することは、便利かもしれない重要な違いがあります。
>>> a = object()
>>> a.whoops = 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'object' object has no attribute 'whoops'
としているところ。
>>> b = type('', (), {})()
>>> b.this_works = 'cool'
>>>
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python jiabaライブラリの使用方法について説明
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み】ValueError: pickleプロトコルがサポートされていません。3、python2 pickleはpython3 pickleでダンプしたファイルを読み込むことができない?
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。