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的主要内容,如果未能解决你的问题,请参考以下文章

powershell 这是导入模块的comppnad。我用它来导入自定义模块

JAVA-初步认识-常用对象API(集合框架-重点方法entryset演示图解)

TweetNaCl.js 最小公钥签名示例

QT之插件Plugin生成与使用(想一想,我有什么功能需要用它来实现呢?)

设计模式之创建型单例模式

flask框架有啥用?