嗨,据我所知,在Python中变量是无类型的。所以现在我想拥有一个基类

class baseClass:
 def x():
  print "yay"


和两个子类

class sub1(baseClass):
 def x():
  print "sub1"

class sub2(baseClass):
 def x():
  print "sub2"


在其他编程语言中,我可以针对接口进行开发,就像

baseClass c = new sub1()


所以现在我可以将c用作具有sub1功能的baseClass,也许在运行时我可以通过更改它

c = new sub2()


在python中也可能吗?

最佳答案

是。

c = sub1()
c = sub2()


但是没有必要定义基类和定义接口的概念,因为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()

关于python - Python响应中的有用继承。接口(interface)的替代,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1706167/

10-10 12:25