python多值参数传递和拆包(*args, **kwargs)

【论文分享】【Agent】ProAgent: Building Proactive Cooperative Agents with Large Language Models 多智能体系统是由多个智能体组成的集合,这些智能体可以是软件程序、机器人、传感器或其他实体,它们各自具备一定的智能和自主性,并通过交互协作来实现单个智能体难以完成的复杂目标。 阅读详情
定义支持多值参数的函数
  • 有时可能需要 一个函数 能够处理的参数 个数 是不确定的,这个时候,就可以使用 多值参数

  • python 中有 两种 多值参数:

    • 参数名前增加 一个 * 可以接收 元组
    • 参数名前增加 两个 * 可以接收 字典
  • 一般在给多值参数命名时,习惯使用以下两个名字

    • *args —— 存放 元组 参数,前面有一个 *
    • **kwargs —— 存放 字典 参数,前面有两个 *
  • args 是 arguments 的缩写,有变量的含义

  • kw 是 keyword 的缩写,kwargs 可以记忆 键值对参数

def demo(num, *args, **kwargs):

    print(num)
    print(args)
    print(kwargs)


demo(1, 2, 3, 4, 5, name="小明", age=18, gender=True)

提示:多值参数 的应用会经常出现在网络上一些大牛开发的框架中,知道多值参数,有利于我们能够读懂大牛的代码

def sum_numbers(*args):

    num = 0
    # 遍历 args 元组顺序求和
    for n in args:
        num += n

    return num

print(sum_numbers(1, 2, 3))
元组和字典的拆包(知道)
  • 在调用带有多值参数的函数时,如果希望:
    • 将一个 元组变量,直接传递给 args
    • 将一个 字典变量,直接传递给 kwargs
  • 就可以使用 拆包,简化参数的传递,拆包 的方式是:
    • 在 元组变量前,增加 一个 *
    • 在 字典变量前,增加 两个 *
def demo(*args, **kwargs):

    print(args)
    print(kwargs)


# 需要将一个元组变量/字典变量传递给函数对应的参数
gl_nums = (1, 2, 3)
gl_xiaoming = {"name": "小明", "age": 18}

# 会把 num_tuple 和 xiaoming 作为元组传递个 args
# demo(gl_nums, gl_xiaoming)
demo(*gl_nums, **gl_xiaoming)
解决vscode无法运行npm命令的问题(cmd可行) Powershell以及vscode中npm命令使用不了 阅读详情

相关推荐

三相直流无刷电机(带HALL传感器)BLDC控制一

本案例选择TIM0的CH0/CH1/CH2三个通道接入三路原始hall输出信号。三路TIM_CHx(48)通过配置存入到NIP寄存器(new input pattern,3 bits)内。未完待续。

m0_69929716的博客 406

python语法-def()详细介绍(特别全)

在 Python 中,函数是一种可重用的代码块,用于执行特定的任务或操作。函数可以接受输入参数,并返回输出结果,从而实现模块化和封装性编程的目的。""""""其中,def是定义函数的关键字,是函数的名称,parameters是函数的参数列表,用圆括号包裹,多个参数之间用逗号分隔,如果没有参数,则留空即可。函数名称和参数列表组成了函数的签名(signature),用于唯一识别和调用该函数。函数的主体部分由冒号和缩进的代码块组成,通常包含一些语句和表达式来完成具体的计算或操作。

m0_55813592的博客 7万+

【NVIDIA驱动的顽固问题】---- /dev/sdax:clean,xxx/xxx files,xxx/xxx blocks ---- 最全解决方法

本文的意义在于整理总结关于此问题的全部解决方法,希望能给大家节约时间。

lc1852109的博客 3128

Python * and **到底是什么呢?(多值参数)

#多值参数 定义支持多值参数的函数 有时可能需要 一个函数 能够处理的参数 个数 是不确定的,这个时候,就可以使用 多值参数 python 中有 两种 多值参数: 参数名前增加 一个 * 可以接收 元组 参数名前增加 两个 * 可以接收 字典 一般在给多值参数命名时,习惯使用以下两个名字 *args —— 存放 元组 参数,前面有一个 * **kwargs —— 存放 字典 参数...

GhostintheCode的博客 728

ISP Tuning实战指南:从基础到高级的色彩与亮度优化

本文详细介绍了ISP Tuning的基础概念与高级调优技术,包括黑电平校正(BLC)、自动白平衡(AWB)、色彩校正矩阵(CCM)和Gamma曲线调整等核心算法。通过实战案例和调试技巧,帮助工程师提升摄像头成像质量,解决高光过曝、暗部噪点等常见问题,适用于智能门铃、车载摄像头等多种场景。

weixin_30879169的博客 108

python基础语法与数据结构

本文摘要: Python基础语法包含输入输出、函数、变量、数据类型及运算符等内容。输入函数input()获取键盘输入并以字符串存储,输出函数print()可格式化输出数据。函数通过def定义,可带参数和返回值,提高代码复用性。变量无需声明类型,可动态赋值。数据类型包括数字、字符串、布尔及复合类型,可通过type()查看。运算符包含算术、赋值等类型,其中复合赋值运算符如+=可简化运算。类型转换函数如int()、str()等可实现显式类型转换。这些基础语法构成Python编程的核心要素。

MM602388的博客 434

python中def怎么用,在python中使用def有多个参数

So in java you can do something like this if you don't know how many parameters you are going to getprivate void testMethod(String... testStringArray){}How can I do something like this in pythonas I c...

weixin_35870524的博客 901

解决Keil uVision许可证管理中Unknown Product错误

嵌入式开发中,IDE工具的许可证管理是确保开发环境正常运行的关键环节。Keil uVision作为ARM架构的主流开发工具,其许可证系统采用加密验证机制,通过产品版本识别实现授权控制。当出现Unknown Product错误时,通常源于版本兼容性问题或区域发行版差异,这直接影响开发工具链的可用性。特别是在维护历史项目或使用中国特供版时,开发者常会遇到此类问题。通过分析许可证类型、调整安装配置或建立虚拟化开发环境等工程实践方案,可以有效解决这类授权验证故障,保障嵌入式项目的持续集成与交付效率。

weixin_33743248的博客 363

Python怎么输入多个参数?

参数是Python中函数定义的一部分,用于接收传递给函数的值和变量。那么Python怎么输入多个参数?其中,arg1是必需参数,必须传递给函数。print_info("Jane",25,"New York")#传递必需参数和可选参数。注意:在使用关键字参数时,必须使用参数名称传递参数,而且必需参数必须在可选参数之前传递。位置参数:参数按顺序传递给函数,每个参数对应于函数定义中的特定位置。其中,arg1、arg2、...、argN是要传递给函数的参数。关键字参数:参数通过名称传递给函数,可以按任何顺序传递。

oldboyedu1的博客 548

【OpenClaw从入门到精通】第10篇:OpenClaw生产环境部署全攻略:性能优化+安全加固+监控运维(2026实测版)

本文聚焦OpenClaw从测试环境走向生产环境的核心痛点,围绕“性能优化、安全加固、监控运维”三大维度展开实操讲解。先明确生产环境硬件/系统选型标准,再通过硬件层资源管控、模型调度策略、缓存优化等手段提升响应速度(实测响应效率提升50%+);接着从网络、权限、数据三层构建安全防护体系,集成火山引擎安全方案拦截高危操作;最后落地TenacitOS可视化监控与Prometheus告警体系,配套完整故障排查清单和虚拟实战案例。全文所有配置、代码均经实测验证,兼顾新手入门实操性和进阶读者的生产级部署需求。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 3436

Prompt进阶2:LangGPT(构建高性能Prompt策略和技巧)--最佳实践指南

Prompt进阶2:LangGPT(构建高性能Prompt策略和技巧)--最佳实践指南

丨汀、的博客 2651

python中def(参数,参数)函数中return(返回)、及def()..if..else的用法及理解

def add(a,b,c,d): #定义add这个函数、里面有4个参数 e=a+b+c+d #变量E、函数里面的4个参数相加 return e #return返回、返回E变量值 f=add(231,3121,1231,231) #调用函数时、一定要给参数赋值、有多少个参数就赋多少个值、那4个参数相加的值就赋给变量F、.

水亦流人必上的博客 9083

RK3588&RK3576实现 HW-ID DTB(动态加载不同的Kernel DTB)功能

RK平台的U-Boot⽀持检测硬件上的GPIO或者ADC状态动态加载不同的Kernel DTB,暂称为HW-ID DTB(Hardware id DTB)功能。

Wynter 849

【python学习笔记】Python中*args 和**kwargs的用法

多个实参,放到一个元组里面,以*开头,可以传多个参数;**是形参中按照关键字传值把多余的传值以字典的方式呈现 *args:(表示的就是将实参中按照位置传值,多出来的值都给args,且以元祖的方式呈现) 示例 def foo(x,*args): print(x) print(args) foo(1,2,3,4,5)#其中的2,3,4,5都给了args 结果 1 (2, 3, 4...

thunder_k的博客 683

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

[python] 多值参数(定义多值参数的函数、案例演练、元组和字典的拆包)

有时可能需要一个函数能够处理的参数个数是不确定的,这个时候,就可以使用多值参数Python中有两种多值参数:一般在给多值参数命名时,习惯使用以下两个名字:提示:多值参数的应用会经常出现在网络上一些大牛开发的框架中,知道多值参数,有利于我们能够读懂大牛的代码。 ...

weixin_48728769的博客 3449

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Python 函数多值参数(可变参数),*args,**kwargs。元组、字典的拆包

* 和 ** 用于形参表示接收不定长参数,用于实参表示拆包。   demo.py(函数多值参数,可变参数): # 多值参数(可变参数)第一种方式 推荐 # *表示元组,**表示字典。 **字典参数放在*元组参数后面,且放在参数列表最后 def demo(num, *nums, **person): # nums是一个元组; person是一个字典 print(nu...

houyanhua1的专栏 1万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Python之多值参数

函数有时可能需要处理的参数个数不确定,这时就需要使用多值参数,该用法多出现于大牛代码中。 Python中有两种多值参数: 参数名前增加一个可以接收元组,一般用*args存放元组参数,args是arguments缩写 参数名前增加两个可以接收字典,一般用**kwargs存放字典参数,kw是keyword缩写 def test(num, *tup, **dict) ...

hesongzefairy的博客 2107

python之多值参数

定义支持多值参数的函数 有时候可能需要一个函数能够处理的参数个数是不确定的,这个时候就可以使用多值参数 python中有两种多值参数: 1.参数名前增加一个 * 可以接收元组 2.参数名前增加两个 * 可以接受字典 ...

weixin_45209380的博客 329

元组和字典的拆包(多值参数函数)

元组和字典的拆包 在定义函数的时候,之前传递的参数都是单值的(数字,字符串等),现在来学习多值参数(元组和字典)的传递: *args,用来接收元组 *kwargs,用来接收字典。 当形参同时含有元组和字典的时候,应该注意一下相应的语法。 def demo(*args,**kwargs): print(args) print(kwargs) num = (1,2,3) ...

庾信平生最萧瑟 291

Python——多值参数和缺省参数

多值参数: 在Python中,有时需要一个函数处理多个数据,这时用到多值参数。在参数前加一个 * 可以接收元组,加 ** 可以接收字典。一般用 *args存放元组参数,用 **kwargs存放字典参数。 例:定义一个函数,接收多个整数并求和 def sun_numbers(*args): num = 0 print(args) for n in args: ...

weixin_45038224的博客 1163

python - 传参总结 - *args 和 **kwargs

source 作者:耀凯考前突击大师 链接:https://www.jianshu.com/p/be92113116c8 *和** 实际上真正的Python参数传递语法是*和**。*args和**kwargs只是一种约定俗成的编程实践。我们也可以写成*vars和**kvars。 *args和**kwargs一般是用在函数定义的时候。二者的意义是允许定义的函数接受任意数目的参数。 也就是说我们 在函数被调用前 并不知道也不限制将来函数可以接收的参数数量。在这种情况下我们可以使用*args和**.

Zhou_Dao的博客 420

Python 多值参数与缺省参数

多值参数:有时,Python函数接收的参数是不确定的,可以利用多值参数进行传参 代码示例: def sum_num(*args): num = 0 for i in args: num += i sum_num(1,2,3) 上面代码,可以任意传递多个整数参数 参数的拆包 在实际开发中,如果想将一个元组直接传开args,字典传给kwargs,就...

没枕头我咋睡觉 361

Python基础学习----拆包

拆包,多用在多值参数种。 1.多值参数。   有时候,在函数的参数转递时,不单只传输单个字符的参数,比如有元组和字典的参数,这时候我们就使用多值参数。   *args 代表元组的多值参数   *kwargs  代表字典的多值参数 # 多值参数 def test(*args,**kwargs):print(args) print(kwargs) list_demo=(1,...

weixin_30950607的博客 140

python多值参数

多值参数 当一个函数想要接收不定个数的参数,就可以使用 多值参数 两种 多值参数 参数前面加一个* 参数前面加两个* 一般再给多值参数命名时,习惯上使用两个名字 *args : 存放元祖参数 ,前面一个* **kwargs :存放字典参数, 前面两个* args 是 arguments 的缩写,有变量的含义 kw 是 keyword 的缩写, kwargs 可以记忆 键值对...

sususu814的博客 749

python result函数用法,Python学习笔记之函数的参数和返回值的使用

01、函数参数和返回值的作用函数根据 有没有参数 以及 有没有返回值,可以相互结合,共有四种:无参数 无返回值无参数 有返回值有参数 无返回值有参数 有返回值定义函数时候,是否接收参数,或者时候返回结果,是根据实际功能需求决定的。如果函数内部处理的数据不确定,就可以将外界的数据以参数形式传递到函数内部。如果希望一个函数执行完成后,向外界汇报执行结果,就可以增加函数的返回值。02、函数的返回值—进阶...

weixin_40009063的博客 1万+

python怎么调用函数的返回值_Python学习笔记之函数的参数和返回值的使用

01、函数参数和返回值的作用函数根据 有没有参数 以及 有没有返回值,可以相互结合,共有四种:无参数 无返回值无参数 有返回值有参数 无返回值有参数 有返回值定义函数时候,是否接收参数,或者时候返回结果,是根据实际功能需求决定的。如果函数内部处理的数据不确定,就可以将外界的数据以参数形式传递到函数内部。如果希望一个函数执行完成后,向外界汇报执行结果,就可以增加函数的返回值。02、函数的返回值—进阶...

weixin_39742958的博客 3649
上一篇: python列表变量的+=使用说明
下一篇: vi/vim—终端中的编辑器
Fighting_1997
博客等级 码龄7年 3万+粉丝 306原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

Fighting_1997

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

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

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

打赏作者

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

抵扣说明:

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

余额充值