python 这是一个小型的演示,我们用它来了解上下文管理器如何在python中工作,显然它们的工作更像是宏而不是fu
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 这是一个小型的演示,我们用它来了解上下文管理器如何在python中工作,显然它们的工作更像是宏而不是fu相关的知识,希望对你有一定的参考价值。
class pre_post():
def __init__(self, pre, post,*args):
self.pre = pre
self.post = post
#print('init',args)
def __enter__(self, *args):
##print('enter',args)
#print(inp,inp,inp,inp)
self.pre()
def __exit__(self, *args):
##print('exit',args)
self.post()
#print(inp,inp,inp)
import math
from random import random
def preconditions():
assert isinstance(inp,(int,float)), 'need int or float, got: {}'.format(inp)
assert inp>0, 'inp is too small'
def postconditions():
assert isinstance(inp, float)
inp = random()
with pre_post(pre=preconditions,post=postconditions):
inp = math.log(inp)
print(inp)
以上是关于python 这是一个小型的演示,我们用它来了解上下文管理器如何在python中工作,显然它们的工作更像是宏而不是fu的主要内容,如果未能解决你的问题,请参考以下文章