python3中定义抽象类的方法在python2中不兼容
在python3中新式的定义抽象类的方法如下:
但是这个方法在python2中会提示语法错误。
在python2中只能像下面这种方式定义抽象类:
这种方式不仅在python2中可以正常运行,在python3中也可以。但是python3的方法只能兼容python3,无法在python2中运行。
原创地址:
http://30daydo.com/article/326
欢迎转载,请注明出处。
from abc import ABCMeta,abstractmethod
class Server(metaclass=ABCMeta):
@abstractmethod
def __init__(self):
pass
def __str__(self):
return self.name
@abstractmethod
def boot(self):
pass
@abstractmethod
def kill(self):
pass
但是这个方法在python2中会提示语法错误。
在python2中只能像下面这种方式定义抽象类:
from abc import ABCMeta,abstractmethod
class Server(object):
__metaclass__=ABCMeta
@abstractmethod
def __init__(self):
pass
def __str__(self):
return self.name
@abstractmethod
def boot(self):
pass
@abstractmethod
def kill(self):
pass
这种方式不仅在python2中可以正常运行,在python3中也可以。但是python3的方法只能兼容python3,无法在python2中运行。
原创地址:
http://30daydo.com/article/326
欢迎转载,请注明出处。