我试图使用Python.NET(2.1.0)继承Python(2.7)中的抽象.NET基类.我是Python n00b,但据我所知...
这是我在Python中设法做的事情,并且工作正常:
import abc
class Door(object):
__metaclass__ = abc.ABCMeta
def open(self):
if not self.is_open():
self.toggle()
def close(self):
if self.is_open():
self.toggle()
@abc.abstractmethod
def is_open(self):
pass
@abc.abstractmethod
def toggle(self):
pass
class StringDoor(Door):
def __init__(self):
self.status = "closed"
def is_open(self):
return self.status == "open"
def toggle(self):
if self.status == "open":
self.status = "closed"
else:
self.status = "open"
class BooleanDoor(Door):
def __init__(self):
self.status = True
def is_open(self):
return self.status
def toggle(self):
self.status = not (self.status)
Door.register(StringDoor)
Door.register(BooleanDoor)
Run Code Online (Sandbox Code Playgroud)
现在,我所做的只是用C#表示替换抽象基类Door:
namespace PythonAbstractBaseClass
{
public abstract …Run Code Online (Sandbox Code Playgroud)