python策略模式包含以下哪些角色_python中的策略模式

from abc import ABC, abstractmethod

class BaseLogger(ABC):

""" Base class specifying one abstractmethod log - tbd by subclasses."""

@abstractmethod

def log(self, message):

pass

class ConsoleLogger(BaseLogger):

""" Console logger implementation."""

def log(self, message):

print(message)

class FileLogger(BaseLogger):

""" Appending FileLogger (date based file names) implementation."""

def __init__(self):

import datetime

self.fn = datetime.datetime.now().strftime("%Y_%m_%d.log")

def log(self,message):

with open(self.fn,"a") as f:

f.write(f"file: {message}\n")

class NotALogger():

""" Not a logger implementation."""

pass

然后使用它们:

^{pr2}$

输出:0

1

2

3

4

file: 0

file: 1

file: 2

file: 3

file: 4

logger needs to inherit from BaseLogger

顺便说一句:python已经具有相当复杂的日志记录能力。如果这是你调查的唯一目的,请调查Logging。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值