Seb*_*ler 1 python inheritance interface
嗨,据我所知,Python变量是无类型的.所以现在我想拥有一个基类
class baseClass:
def x():
print "yay"
Run Code Online (Sandbox Code Playgroud)
和两个子类
class sub1(baseClass):
def x():
print "sub1"
class sub2(baseClass):
def x():
print "sub2"
Run Code Online (Sandbox Code Playgroud)
在其他编程语言中,我可以像接口一样开发接口
baseClass c = new sub1()
Run Code Online (Sandbox Code Playgroud)
所以现在我可以使用c作为具有sub1功能的baseClass,也许在运行时我可以通过它来改变它
c = new sub2()
Run Code Online (Sandbox Code Playgroud)
这在python中也可能吗?
是.
c = sub1()
c = sub2()
Run Code Online (Sandbox Code Playgroud)
但是基类和定义接口的概念是不必要的,因为python不是静态类型的.
编辑:
要在有效的Python中重写代码:
# This space where baseClass was defined intentionally left blank,
# because it serves no purpose
class Sub1(object):
def x(self):
print "sub1"
class Sub2(object):
def x(self):
print "sub2"
c = Sub1()
c = Sub2()
Run Code Online (Sandbox Code Playgroud)