当前位置: 首页 > news >正文

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 = lowself.high = highdef __iter__(self):return selfdef __next__(self):# 返回下一个值,直到当前值大于highif self.current > self.high:raise StopIterationelse:self.current += 1return 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 1yield 2yield 3gen = my_generator()    # 调用生成器函数创建一个生成器对象
  • # 生成器
    def generator():yield 1yield 2yield 3gen = 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 lowlow += 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 + numberreturn 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_startprint("花费时间: {}秒".format(cost_time))return wrapper@timer
    def func1():print("这是函数一嗷")@timer
    def func2():a,b = 10,2000while a<b:a += 1print("我是函数二")@timer
    def func3():print("俺是函数三, 俺还会跳节目三嗷!")func1()
    func2()
    func3()
  • Flask:是一个web框架。属于微框架。
  • WSGI服务器网关接口:是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。

http://www.lryc.cn/news/261090.html

相关文章:

  • Unity中实现ShaderToy卡通火(总结篇)
  • 等保2.0的变化
  • 漏洞复现-网神SecGate3600防火墙敏感信息泄露漏洞(附漏洞检测脚本)
  • ArkTS入门
  • JS中for循环之退出循环
  • 《Global illumination with radiance regression functions》
  • 华南理工C++试卷
  • 0001.WIN7(64位)安装ADS1.2出现L6218错误
  • HBuilderX 配置 夜神模拟器 详细图文教程
  • 10、神秘的“位移主题”
  • 【Linux】dump命令使用
  • 使用 TensorFlow 创建生产级机器学习模型(基于数据流编程的符号数学系统)——学习笔记
  • vue实现悬浮窗拖动的自定义指令
  • gitee(ssh)同步本地
  • Redis新数据类型-Bitmaps
  • web前端之vue组件传参、各种传参的不同写法、语法糖
  • 基于Nexus搭建Maven私服基础入门
  • JavaScript自执行函数:用途、好处
  • Git使用无法拉取
  • 来聊聊CAS
  • 【EventBus】EventBus源码浅析
  • Buck电源设计常见的一些问题(二)MOS管炸机问题
  • Javascript高频面试题
  • 锁--07_2---- index merge(索引合并)引起的死锁
  • 后端打印不了trace等级的日志?-SpringBoot日志打印-Slf4j
  • 声明式编程Declarative Programming
  • 人工智能与天文:技术前沿与未来展望
  • JeecgBoot 框架升级至 Spring Boot3 的实战步骤
  • 论文阅读——Semantic-SAM
  • gitlab下载,离线安装