python怎么用hook函数

python怎么用hook函数

在python中使用hook函数,具体方法如下:

import time

class LazyPerson(object):

def __init__(self, name):

self.name = name

self.watch_tv_func = None

self.have_dinner_func = None

def get_up(self):

print("%s get up at:%s" % (self.name, time.time()))

def go_to_sleep(self):

print("%s go to sleep at:%s" % (self.name, time.time()))

def register_tv_hook(self, watch_tv_func):

self.watch_tv_func = watch_tv_func

def register_dinner_hook(self, have_dinner_func):

self.have_dinner_func = have_dinner_func

def enjoy_a_lazy_day(self):

self.get_up()

time.sleep(3)

if self.watch_tv_func is not None:

self.watch_tv_func(self.name)

else:

print("no tv to watch")

time.sleep(3)

if self.have_dinner_func is not None:

self.have_dinner_func(self.name)

else:

print("nothing to eat at dinner")

time.sleep(3)

self.go_to_sleep()

def watch_daydayup(name):

print("%s : The program ---day day up--- is funny!!!" % name)

def watch_happyfamily(name):

print("%s : The program ---happy family--- is boring!!!" % name)

def eat_meat(name):

print("%s : The meat is nice!!!" % name)

def eat_hamburger(name):

print("%s : The hamburger is not so bad!!!" % name)

if __name__ == "__main__":

lazy_tom = LazyPerson("Tom")

lazy_jerry = LazyPerson("Jerry")

lazy_tom.register_tv_hook(watch_daydayup)

lazy_tom.register_dinner_hook(eat_meat)

lazy_jerry.register_tv_hook(watch_happyfamily)

lazy_jerry.register_dinner_hook(eat_hamburger)

lazy_tom.enjoy_a_lazy_day()

lazy_jerry.enjoy_a_lazy_day()

我们的服务
专业提供中小企业网站建设.公司网站建设.外贸网站建设.营销型网站建设,响应式网站建设,商城网站定制,手机网站,微信小程序定制.php应用开发服务,公司成立于2014年,8年专注网站建设,秉承“以客户为根本,以科技为核心,以市场为导向”的经营理念;服务电话13714666846(微信同号)

声明:本站所有作品(图文、音视频)均由用户自行上传分享,或互联网相关知识整合,仅供网友学习交流,若您的权利被侵害,请联系 管理员 删除。

本文链接:http://news.ew35.com/