言語によって許可される可能性がありますが、どちらのコミュニティもその練習を許しません。 Monkeypatchingはどちらの言語でも許されませんが、Rubyではそれを頻繁に聞きます。オープンクラスのため、クラスをmonkeypatchするのが非常に簡単になります。it's more acceptable in the Ruby community, but still frowned upon。 MonkeypatchingはPythonではあまり一般的ではないし、簡単ではありません。なぜなら、そのコミュニティで同じことを聞いていないからです。 Pythonは、Rubyがその習慣を妨害するために何もしません。
class MyClass
def foo
puts "foo"
end
end
class MyClass
def bar
puts "bar"
end
end
はPythonで、この一方で、あなたは二つの方法、foo
とbar
を含むクラスを提供します:
あなたはRubyでより頻繁にそれについて読む/聞く理由は、このRubyでということです:
class MyClass:
def foo(self):
print "foo"
class MyClass:
def bar(self):
print "bar"
しかメートルを含むクラスであなたを残しますクラスの再定義が前の定義を完全に壊すので、bar
のようになります。 Rubyのバージョンよりも硬い
class MyClass:
def foo(self):
print "foo"
def bar(self):
print "bar"
MyClass.bar = bar
:Pythonでモンキーパッチするには、実際にこれを記述する必要があります。それだけで、RubyコードはPythonコードよりもはるかに簡単にMonkeypatchできます。
Rubyの場合と同じようにPythonよりもJavascriptでよく見られますが、そうでなければ –