本周,有一位工具人的使(CHAN)唤(PING)者(JING LI)离开了工具人修理者联盟,工具人表面上流露出对兄弟之情的不舍,内心其实却暗自欢喜,为什么呢?因为终于少了个挥舞工具人的抓手,多了一个未来可抱可舔的大腿。
在祝福他的同时,工具人也离别相赠一本装逼宝典,好让他在新单位别辜负了工具人多年的调教,时刻人前显圣。
在这本宝典里,工具人使用了装饰器来给自己加戏,不仅要把工作完成的漂亮,还要会包装自己,让领导认识到你的能力和贡献。
所以工具人创建了ZHUANG_B装饰器:
class ZHUANG_B(object):def __init__(self, words):self._words = wordsdef __call__(self, func):def wrapper(*args, **kwargs):print(self._words)func(args[0]) # 传入的是selfreturn wrapperclass ToolMan():def __init__(self, name):self._name = name@ZHUANG_B('手握明月摘星辰,世间唯我工具人')def working(self):print("我是{},我活好".format(self._name))tool_man = ToolMan('工具人')tool_man.working()
每次工具人完成工作时,都会伴随着BGM和旁白:
手握明月摘星辰,世间唯我工具人我是工具人,我活好
在这里我们使用了类作为装饰器的一种实现方式,旁白作为ZHUANG_B类的参数,在类调用时(__call__函数)打印。
除了工作能力要强,还要会融入团队,在团建等活动中要一显身手~
class ZHUANG_B(object):def __init__(self, words):self._words = words@staticmethoddef hobby(hobby):def wrapper3(func):def wrapper2(*args, **kwargs):print('{}工具人,插标卖首跟不跟?'.format(hobby))return func(args[0]) # 传入的是selfreturn wrapper2return wrapper3def __call__(self, func):def wrapper(*args, **kwargs):print(self._words)func(args[0]) # 传入的是selfreturn wrapperclass ToolMan():def __init__(self, name):self._name = name@ZHUANG_B('手握明月摘星辰,世间唯我工具人')def working(self):print("我是{},我活好".format(self._name))@ZHUANG_B.hobby('德州之王')def playing(self):print("我是{},我ALL IN".format(self._name))tool_man = ToolMan('工具人')#tool_man.working()tool_man.playing()
同样,我们也可以使用函数作为装饰器的实现,这里我们使用了hobby静态函数,让工具人在参加团队建设时,能技惊四座。
德州之王工具人,插标卖首跟不跟?我是工具人,我ALL IN
这里的hobby函数有些不太容易理解,工具人是这样理解的,hobby是一个传入了“德州之王”参数的函数,它返回了一个函数wrapper3,wrapper3的入参是一个函数指针func即playing,由于playing有参数,所以需要再被wrapper2包装,由它接受入参后,传递给func。
但木秀于林,风必摧之。
所以太过优秀的工具人,平时需要谦虚。这里我们用Character人设装饰器直接装饰ToolMan类,来给自己增加低调的人设。
class Character(object):def __init__(self, cls):self._cls = clsdef __call__(self, name):print("我是{},我很低调".format(name))return self._cls(name)@Characterclass ToolMan():def __init__(self, name):self._name = name@ZHUANG_B('手握明月摘星辰,世间唯我工具人')def working(self):print("我是{},我活好".format(self._name))@ZHUANG_B.hobby('德州之王')def playing(self):print("我是{},我ALL IN".format(self._name)
于是,工具人在初始化时会首先申明:
我是工具人,我很低调
好了,希望工具人的好兄弟,能明白工具人的一片冰心,祝他鹏程万里,苟富贵勿相忘!
文章转载自将咖啡转化为程序的工具人,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




