我希望能够实例化一个对象,其方法的行为会因平台而异。
import sys
class MyClass(object):
@property
def os_is_darwin(self):
return sys.platform == 'darwin'
def get_home_directory(self):
if self.os_is_darwin:
return '/Users/travis/'
else:
return 'C:\\Users\\travis\\'
通过使用抽象基类并将 Mac 和 Windows 实现划分为子类,是否有更简洁的方法来做到这一点?重要的是像上面的类一样为调用者抽象出平台:
my_object = MyClass()
print my_object.get_home_directory()