タグ付けされた質問 「python-datamodel」


9
インスタンスのクラス名を取得していますか?
これを行う関数がインスタンスのクラスが派生した基本クラスである場合、Pythonでオブジェクトのインスタンスを作成したクラスの名前を見つけるにはどうすればよいですか? おそらく、inspectモジュールが私を助けてくれたかもしれないと思っていましたが、それは私が欲しいものを与えていないようです。__class__メンバーを解析する前に、この情報を取得する方法がわかりません。


15
メソッドパラメータ名を取得する方法
Python関数を考える: def a_method(arg1, arg2): pass 引数の数と名前を抽出するにはどうすればよいですか。つまり、への参照があることを前提としてfunc、func.[something]を返し("arg1", "arg2")ます。 これの使用シナリオは、デコレータがあり、メソッドの引数を実際の関数にキーとして表示されるのと同じ順序で使用したい場合です。つまり、デコレータは、"a,b"呼び出したときに印刷されたように見えますa_method("a", "b")か?

10
Pythonでオブジェクトの完全修飾クラス名を取得する
ロギングのために、Pythonオブジェクトの完全修飾クラス名を取得したいと思います。(完全修飾とは、パッケージとモジュールの名前を含むクラス名を意味します。) についてx.__class__.__name__は知っていますが、パッケージとモジュールを取得する簡単な方法はありますか?

5
__getitem__でのスライスの実装
ベクター表現を作成する、作成しているクラスのスライス機能を実装しようとしています。 これまでのところ、このコードはありますが、スライスは適切に実装されると思いますがv[4]、vがベクトルであるような呼び出しを行うと、Pythonは十分なパラメーターがないというエラーを返します。だから私はgetitemプレーンインデックスとスライスの両方を処理するために私のクラスで特別なメソッドを定義する方法を理解しようとしています。 def __getitem__(self, start, stop, step): index = start if stop == None: end = start + 1 else: end = stop if step == None: stride = 1 else: stride = step return self.__data[index:end:stride]

5
Python、__ eq__に基づいて__ne __()演算子を実装する必要がありますか?
__eq__()演算子をオーバーライドしたいクラスがあります。__ne__()演算子もオーバーライドする必要があるのは理にかなっているようですが、それに__ne__基づいて実装することには意味があり__eq__ますか? class A: def __eq__(self, other): return self.value == other.value def __ne__(self, other): return not self.__eq__(other) または、Pythonがこれらの演算子を使用する方法に欠けているものがあるので、これは良い考えではありませんか?

6
メソッドを定義したクラスを取得する
Pythonでメソッドを定義したクラスを取得するにはどうすればよいですか? 次の例で「__main__.FooClass」を出力したいと思います。 class FooClass: def foo_method(self): print "foo" class BarClass(FooClass): pass bar = BarClass() print get_class_that_defined_method(bar.foo_method)

11
__init__の外部に新しい属性を作成しないようにする
で初期化されると__init__、新しい属性を受け入れないが、既存の属性の変更を受け入れるクラスを(Pythonで)作成できるようにしたい。これを行うには、ハックっぽい方法がいくつかあります。たとえば、次の__setattr__ような方法があります。 def __setattr__(self, attribute, value): if not attribute in self.__dict__: print "Cannot set %s" % attribute else: self.__dict__[attribute] = value 次に、__dict__内部__init__で直接編集しますが、これを行うための「適切な」方法があるかどうか疑問に思いました。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.