小编zon*_*onk的帖子

使用协程和函数作为 Python 中的方法保持 SOLID 和 DRY

我有那个代码示例:

from time import sleep
import asyncio

class bird:

    def __init__(self, sleeptime=1):
        self.var = sleeptime

    def wait_meep(self):
        sleep(self.var)
        print("Meep")

    def do_sth(self):
        print("Dop Dop Do do ...")


class bird_async:

    def __init__(self, sleeptime=1):
        self.var = sleeptime

    async def wait_meep(self):
        await asyncio.sleep(self.var)
        print("Meep")

    def do_sth(self):
        print("Dop Dop Do do ...")
Run Code Online (Sandbox Code Playgroud)

如您所见,两个客户端大多相同,并且应包含相同的名称(以便每个人都知道会发生什么)。现在我想干脆bird_async(bird)。因为每个扩展 in 也bird应使用 in bird_async。这是可能的,但我的同事说,它不是 SOLID,因为我已经覆盖了wait_meep. 现在我正在寻找不同的灵魂并找到抽象类。我不知道的是,如果创建一个抽象类birdBase(ABC)也是 SOLID。我也会在那里覆盖,因为首先它是一个函数,然后是一个协程,或者我在这里错了?

什么是 SOLID 和 DRY 解决方案可以将这两个类组合在一起,而无需重命名方法?

python dry python-3.x solid-principles

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

标签 统计

dry ×1

python ×1

python-3.x ×1

solid-principles ×1