2017-09-22 5 views
0

オブジェクトがxであるとしますが、インスタンス化されているクラスxはわかりません。 xと同じタイプの新しいオブジェクトyを作成します。私たちはからインスタンス化されたクラスのx知っていた場合はPythonでは、古いオブジェクトと同じタイプの新しいオブジェクトを作成するにはどうすればよいですか?

、我々は単にクラスのコンストラクタ/初期化子を呼び出すことができます。

y = NameOfClass() 

は、しかし、私たちはクラスXの名前はからインスタンス化されるかわかりません。

主な問題は、二つのサブ質問に分けることができます。

1)どのようにデータ型xが何であるかを見つけるのですか?
2)データ型(コンピュータのどこかに格納されている)を指定すると、その型の新しいオブジェクトを作成するにはどうすればよいですか?

答えて

0
NameOfClass = type(x) 
y = NameOfClass() 
+1

これは、クラスが実際にそのように動作するコンストラクタを持っていると仮定しています。 – user2357112

+0

パラメータが必要な場合はどうなりますか?これがうまくいくとは思えません。 '__repr__' *は正しく構築されれば、状態の少なくとも一部を再作成する方法を示しますが、保証はありません。 – jonrsharpe

関連する問題