在Python中,我可以做这样的事情:的Python像Ruby继承
# say.py
class Speaker:
def speak(self,word):
pass
def Do(self):
self.speak("hello")
Speaker().Do()
如果我跑这一点,那就什么也不做。我能做到这一点在其他模块:
import say
class Test(say.Speaker):
def speak(self,word):
print(word)
Test().Do()
如果我跑这一点,因为我继承了它,当我做在say.py
原speak
功能被完全改写:
class Test(say.Speaker)
所以,当我运行该脚本,它会打印这个词而不是无所事事。我希望脚本的名称能够动态更改文件名,而无需编辑say.rb
。
如果我跑say.py
并做:
Speaker().do()
什么也不会发生,但是当我运行其他PY模块,并将它做的事:
Test.Do()
因为我继承了它,它被覆盖,并改变了speak
的功能。做Speaker().Do()
,因为它没有做任何事情,但如果我做Test.Do()
,它确实工作,因为覆盖。
他们是一个红宝石的等价物,我在Python中做了什么,如果是的话,我该怎么做呢?
谢谢你,这让我很难相处,因为你解决了我的问题。 – anakin