私はPythonでいくつかのカスタムクラスを作成していますが、そのインスタンスをすべて継承することなくクラスに属性を定義する方法があるかどうかは疑問でした。例えばクラスの属性をインスタンスに設定しないでください
:
class Foo():
def bar():
pass
Foo.bar # would return `bar` function
instanceOfFoo = Foo()
instanceOfFoo.bar # would raise an AttributeError
私は、Foo
をサブクラスbar
をオーバーライドし、手動bar
が存在しないことを「外見」を与えること@property
としてAttributeError
を上げることができる知っているが、どのような方法がありますサブクラスなしでこれを行うには?
コンテキスト:私は何かを行います(Date
クラス自体に)Date.parse
を呼び出すJavaScriptの、からDate
クラスを複製しようとしていますが、インスタンスは継承されませんのでDate
インスタンス上parse
を呼び出すと、何もしませんparse
の機能はDate
です。 (彼らはDate.prototype
からすべてのプロパティを継承しているので、そこで動作します)
あなたはクラスメソッドhttps://docs.python.org/2/library/functions.html#classmethodまたは静的メソッドhttps://docs.python.org/2/libraryを持つようにしたいような音/functions.html#staticmethod –
@Klaus D. Classmethodsはまだクラスのインスタンスによって継承されます。彼らはクラスのインスタンスではなく、最初の引数としてクラスを受け取ったばかりです。インスタンスがクラスの属性を継承しないようにする方法を探しています。 – ChristianFigueroa
さて、あなたは継承してもいなくてもかまいません。一般に、ある言語を他の非常に異なる言語で模倣しようとするのは疑わしいことです。 –