知识点总结

本文介绍了Python中的参数类型,包括位置参数、默认参数、关键字参数、可变长参数等。还讨论了@property装饰器用于创建只读属性,以及async和await关键字在异步编程中的作用。此外,提到了海象运算符在Python3.8中的新特性,以及Celery库在分布式任务队列中的应用。
摘要由CSDN通过智能技术生成

目录

一、python的参数汇总:

二、@property:

三、python的await和async:

四、海象运算符:

五、Celery:


一、python的参数汇总:

1、位置参数

        这是最常见的参数类型,函数通过位置顺序来匹配传入的参数值。

def func(arg1, arg2, arg3):
    # 函数体
2、默认参数

        这允许在定义函数时为参数指定默认值。如果调用函数时没有提供对应参数值,则使用默认值。

def func(arg1, arg2=10, arg3="hello"):
    # 函数体
 3、关键字参数

        在调用函数时,通过参数名指定参数值,这样可以忽略参数的位置。

func(arg1=42, arg2=100)
 4、可变长位置参数

        使用星号(*)来表示接受任意数量的位置参数,这些参数会被收集成一个元组。

def func(*args):
    # args 是包含所有位置参数的元组
5、可变长关键字参数

         使用两个星号(**)来表示接受任意数量的关键字参数,这些参数会被收集成一个字典。

def func(**kwargs):
    # kwargs 是包含所有关键字参数的字典
6、强制关键字参数 :

        在函数定义时使用星号(*)后面的参数,将强制调用时必须使用关键字来指定参数。

def func(arg1, *, arg2, arg3):
    # 函数体
7、包裹位置参数

        在调用函数时,使用星号(*)来解包装被打包的位置参数。

def func(arg1, arg2, arg3):
    # 函数体
 
args = [1, 2, 3]
func(*args)
8、包裹关键字参数

        在调用函数时,使用两个星号(**)来解包装被打包的关键字参数。

def func(arg1, arg2, arg3):
    # 函数体
 
kwargs = {"arg1": 1, "arg2": 2, "arg3": 3}
func(**kwargs)

二、@property:

       在Python中,@property 是一种装饰器用于将类方法转换为只读属性。它允许你通过调用类似于属性访问的方式来访问方法,而不需要显式地调用方法。

        使用 @property 装饰器将这个方法转换为只读属性,而不是一个可调用的方法。

下面是一个使用 @property 装饰器的示例:

class Circle:
    def __init__(self, radius):
        self._radius = radius
 
    @property
    def radius(self):
        return self._radius
 
    @property
    def area(self):
        return 3.14 * self._radius * self._radius
 
    @property
    def circumference(self):
        return 2 * 3.14 * self._radius
 
# 创建一个 Circle 实例
circle = Circle(5)
 
# 通过属性访问方式获取半径和面积
print(circle.radius)         # 输出: 5
print(circle.area)           # 输出: 78.5
 
# 注意:circumference 是只读属性,尝试赋值会引发 AttributeError
# circle.circumference = 30  # 会引发 AttributeError

三、python的await和async:

await 和 async 是Python中用于异步编程的关键字。

    async 是用于定义异步函数的关键字。异步函数是一种特殊类型的函数,可以包含 await 关键字,以便在其内部等待异步操作完成。当你在函数定义前加上 async 关键字时,它会成为一个异步函数。

async def async_function():
    # 异步函数体
    await 通常用于等待一个异步操作完成。它只能在异步函数内部使用,用于标记一个异步操作的点,并且会暂时挂起该异步函数的执行,直到异步操作完成并返回结果。在等待期间,事件循环可以去执行其他任务,从而实现非阻塞的异步执行。

async def async_function():
    result = await some_async_operation()
    # 继续执行异步函数体,使用result等待的结果

四、海象运算符:

        海象运算符是Python3.8引入的新特性,它的符号是 :=。这个运算符允许我们在表达式中同时进行赋值和返回表达式的值。

        在以前的版本中,我们可能需要为了获取某个表达式的值而重复计算相同的表达式,或者为了赋值而必须创建一个额外的变量。使用海象运算符,我们可以简化这些操作

#基础写法
 
x=5
if x<10:
    print("hello fancy!")
 
#海象运算符写法:
 
if (x:=5) < 10:
    print("hello fancy!")

五、Celery:

        Celery是一个用于处理分布式任务队列的Python库,它允许你将耗时的任务异步处理,从而提高应用程序的性能和响应能力。它在分布式系统中常用于后台任务处理、定时任务、消息队列等场景。

下面是一个简单的Celery案例:

    1.创建一个文件 tasks.py 来定义我们的Celery任务:

# tasks.py
 
from celery import Celery
 
# 创建Celery应用
app = Celery('myapp', broker='redis://localhost:6379/0', backend='redis://localhost:6379/1')
 
# 定义任务函数
@app.task
def add(x, y):
    return x + y
      2.启动Celery执行器:在命令行中执行以下命令,以启动Celery执行器:

celery -A tasks worker --loglevel=info
      3.调用任务:现在,我们可以在应用程序的其他部分调用定义的任务函数。

# main.py
from tasks import add
 
result = add.delay(3, 5)
print("Task submitted. Waiting for the result...")
 
# 等待任务执行完成,并获取结果
print("Result:", result.get())
      4.运行应用程序:在命令行中运行 main.py 文件:

python main.py
这是一个简单的Celery案例,它将 add 函数异步执行,并返回计算结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值