Python个人代码随笔(观看无益,请跳过)

  • 异常抛错:
  • 一般来说,在程序中,遇到异常时,会从这一层逐层往外抛错,一直抛到最外层,由最外层把错误显示在用户终端。
try:
    raise ValueError("A value error...")
except ValueError:
    print("ValueError in my code...")
  • 异常清理行为try语句下的可选finally子句:
  • finally子句目的在于定义在任何情况下都一定要执行的功能。一般来说,finally子句用于释放外部资源(文件或网络传输连接之类的),无论它们的使用过程中是否出错。
try:
    raise ValueError
except ValueError:
    print("a value error...")
finally:
    print("hahahahahahaha")

  • python迭代器(_Iterators_)对象在遵守迭代器协议时需要支持如下两种方法:
  • __iter__(),返回迭代器对象自身。这用在for和in语句中;
  • __next__(),返回迭代器的下一个值。如果没有下一个值可以返回,那么应该抛出StopIteration异常。
  • class Counter(object):
        def __init__(self,low,high):
            self.current = low
            self.high = high
        def __iter__(self):
            return self
        def __next__(self):
            # 返回下一个值,直到当前值大于high
            if self.current > self.high:
                raise StopIteration
            else:
                self.current += 1
                return self.current - 1
  • # 调用上述迭代器
    
    c = Counter(5,10)
    for i in c:
        print(i, end=" ")
  • 生成器(Generator)是一种特殊类型的迭代器,它允许在迭代过程中逐步生成值,而不需要一次性生成所有值。通过生成器,可以方便的向程序提供一个可迭代的序列,同时可以节省内存,并允许在需要时延迟生成值。
  • 生成器可以通过两种方式定义:
  • 1,生成器函数(Generator Function)
  • 2,生成器表达式(Generator Expression)
  • 生成器函数:
  • 生成器函数是一种特殊的函数,它使用yield关键字来产生值。当调用生成器函数时,它返回一个生成器对象,该对象可以用于迭代生成值。
  • def my_generator():
        yield 1
        yield 2
        yield 3
    
    gen = my_generator()    # 调用生成器函数创建一个生成器对象
  • # 生成器
    def generator():
        yield 1
        yield 2
        yield 3
    
    gen = generator()  # 调用生成器函数创建一个生成器对象
    for item in gen:
        print(item)
    
    # 生成器的简单写法
    gen = (i * i for i in range(10))  # 这里用圆括号,方括号是列表
    for item in gen:
        print(item)
    # 生成器是一种特殊类型的函数,它可以在需要时生成值,而不必一次性生成所有值并将它们存储在内存中。
    # 生成器能够延迟产生序列的元素,这样可以减少内存占用并提高效率,特别是在处理大量数据时。
  • # 生成器
    def counter_generator(low, high):
        while low <= high:
            yield low
            low += 1
    for i in counter_generator(5,10):
        print(i, end=" ")
    # 在while循环中,每当执行到yield语句时,返回变量low的值并且生成器状态转为挂起。
    # 在下一次调用生成器时,生成器从之前冻结的地方恢复执行然后变量low的值加一。生成器继续while循环并且再次来到yield语句。。。
    
    # 生成器的使用场景:
    # 通常使用生成器进行惰性求值。这样使用生成器是处理大数据的好方法。如果你不想在内存中加载所有数据,你可以使用生成器,一次只传递给你一部分数据。
    
    # 生成器是一定不能重复循环的
    # 如果想要使得类的实例变成生成器,可以用__iter__和__next__方法实现。
  • 闭包(__Closures__):是由另外一个函数返回的函数。我们使用闭包去除重复代码。
  • def add_number(num):
        def adder(number):
            # adder是一个闭包
            return num + number
        return adder
    a_10 = add_number(10)
    print(a_10(21))
    # adder是一个闭包,把一个给定的数字与预定义的一个数字相加
  • 装饰器(__Decorators__)用来给一个对象状态的添加一些新的行为。
  • # 装饰器
    # 装饰器是在不修改目标代码的前提下,为目标函数(或类)新增功能的函数(或类)。
    import time
    def timer(function):
        def wrapper():
            time_start = time.time()
            function()
            time_end = time.time()
            cost_time = time_end - time_start
            print("花费时间: {}秒".format(cost_time))
        return wrapper
    
    @timer
    def func1():
        print("这是函数一嗷")
    
    @timer
    def func2():
        a,b = 10,2000
        while a<b:
            a += 1
        print("我是函数二")
    
    @timer
    def func3():
        print("俺是函数三, 俺还会跳节目三嗷!")
    
    func1()
    func2()
    func3()
  • Flask:是一个web框架。属于微框架。
  • WSGI服务器网关接口:是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缱绻命运

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值