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

python笔记(函数参数、面向对象、装饰器、高级函数、捕获异常)

Python 笔记

函数参数

默认参数

在Python中,我们可以为函数的参数设置默认值。如果调用函数时没有传递参数,那么参数将使用默认值。

def greet(name='World'):print(f"Hello, {name}!")greet()        # 输出:Hello, World!
greet('Alice') # 输出:Hello, Alice!

可变参数

可变参数允许我们向函数传递任意数量的参数。

def sum(*numbers):total = 0for number in numbers:total += numberreturn totalprint(sum(1, 2, 3)) # 输出:6
print(sum(4, 5))    # 输出:9
print(sum(6))       # 输出:6

面向对象

Python 是一种面向对象的语言,它支持通过类来创建对象。

类定义

类用于定义对象的属性和方法。

class Person:def __init__(self, name, age):self.name = nameself.age = agedef greet(self):print(f"Hello, my name is {self.name}. I'm {self.age} years old.")person1 = Person('Alice', 25)
person2 = Person('Bob', 30)person1.greet() # 输出:Hello, my name is Alice. I'm 25 years old.
person2.greet() # 输出:Hello, my name is Bob. I'm 30 years old.

装饰器

装饰器是一种语法,可以修改函数的行为。它可以在不修改原始函数代码的情况下,添加额外的功能。

def log(func):def wrapper(*args, **kwargs):print(f"Calling {func.__name__} with arguments: {args}")return func(*args, **kwargs)return wrapper@log
def add(a, b):return a + bprint(add(2, 3)) # 输出:Calling add with arguments: (2, 3)#      5

高级函数

Python 中的高级函数可以接受其他函数作为参数或返回函数。

高阶函数

高阶函数是指接受一个或多个函数作为参数,并/或者返回一个函数的函数。

def apply_operation(a, b, operation):return operation(a, b)def add(a, b):return a + bdef subtract(a, b):return a - bprint(apply_operation(2, 3, add))      # 输出:5
print(apply_operation(2, 3, subtract)) # 输出:-1

匿名函数和Lambda 表达式

匿名函数是没有具名标识符的函数,我们可以将其作为参数传递给其他函数或直接调用。

Lambda 表达式是一种匿名函数的简写形式。

multiply = lambda a, b: a * b
divide = lambda a, b: a / bprint(multiply(2, 3)) # 输出:6
print(divide(6, 2))   # 输出:3

捕获异常

在Python中,我们可以使用 try...except 语句来捕获和处理异常。

try:# 可能会抛出异常的代码raise Exception("Something went wrong!")
except Exception as error:# 捕获并处理异常print(f"Error: {error}")

通过使用 try...except 块,我们可以在程序出现异常时执行特定的操作并提供更友好的错误处理。

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

相关文章:

  • JAVA命令总结
  • 删除的PPT怎么找回来?4个必备恢复方法!
  • Binder机制总结笔记
  • SQL SERVER 表分区
  • 从零开始学习PX4源码0(固件下载及编译)
  • centos格式化硬盘/u盘的分区为NTFS格式
  • 【工具】FreePic2PDF+PdgCntEditor|PDF批量添加书签(Windows)
  • 中移链浏览器简介
  • 深入浅出排序算法之计数排序
  • 大坝水库安全监测终端MCU,智能化管理的新篇章!
  • LeetCode 面试题 16.09. 运算
  • spring-代理模式
  • 我用好说 AI 做二次元人设
  • 付费阅读微信小程序源码/小程序和公众号双版本-多种付费模式前后端+独立源码
  • ref、reactive、toRef、toRefs
  • GPT实战系列-如何用自己数据微调ChatGLM2模型训练
  • 【数电知识点_2023.10.28】
  • spring boot配置ssl(多cer格式)保姆级教程
  • 第2篇 机器学习基础 —(4)k-means聚类算法
  • 【Python爬虫+可视化】解析小破站热门视频,看看播放量为啥会这么高!评论、弹幕主要围绕什么展开
  • Mac电脑专业三维模型展UV贴图编辑工具RizomUV RS + VS 2023有哪些特点
  • Linux文件描述符和文件指针互转
  • C++11线程
  • VIVO应用商店评论数据抓取
  • 第00章_写在前面
  • ​测绘人注意,你可能会改变历史!
  • MySQL - 慢查询
  • go中“哨兵错误”的由来及使用建议
  • 【Python百练——第2练】使用Python做一个猜数字小游戏
  • Power BI 傻瓜入门 18. 让您的数据熠熠生辉