小编pjx*_*iao的帖子

如何使用setup.py防止意外发布Python pacakge

有没有办法防止意外发布私人包裹,如"private": trueNPM?

python

7
推荐指数
1
解决办法
277
查看次数

向子类添加公共方法是否违反LSP(Liskov替换原则)?

如果我将子方法添加到子类并且客户端程序调用添加的方法,则客户端程序不能使用父对象而不是子类.

import unittest

class BaseClass(object):

    def doSomething(self):
        pass


class SubClass(BaseClass):

    def doStuff(self):
        pass

class Client(object):

    def __init__(self, obj):
        self.obj = obj

    def do(self):
        self.obj.doStuff()

class LSPTestCase(unittest.TestCase):

    def test_call_subclass_method(self):
        client = Client(SubClass())
        client.do()

    def test_call_baseclass_method(self):
        client = Client(BaseClass())
        with self.assertRaises(AttributeError):
            client.do()

if __name__ == '__main__':
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

这种情况违反了LSP?

oop liskov-substitution-principle solid-principles

3
推荐指数
1
解决办法
505
查看次数