如何将位置参数从一个函数传递到Python中另一个函数中的*args

问题描述 投票:0回答:1

我有两个脚本和一个自定义电子邮件模块,其中有两个可用的功能。

但是我需要在两个脚本使用的自定义电子邮件模块中使用一个通用函数。

脚本1

导入 email_module.email 导入 send_email

这里有一些代码

File_count = sum([len(files) for r, d, os.walk(input_file) 中的文件])

File_size_in_bytes=此处代码用于获取文件大小(以字节为单位)

File_size = 此处的代码用于获取文件大小(以 gb/mb 为单位)

如果条件失败,脚本将触发电子邮件

其他

发送电子邮件(a,b,c,文件计数,文件大小(以字节为单位))

其他

发送_电子邮件(a b,c,文件数,文件大小)

脚本2:

这里有一些代码

发送_email_rfb(a,b,c,url,msg)

电子邮件_模块

def send_email(a,b,c,fcnt,fsize)

fc = str(fcnt)

fs=str(fsize)

Subject=“对 {a} 发出警报”

Text=f'差异,文件计数为 {fc},文件大小为 {fs}

def send_email_rfb(a,b,c,weburl,error_msg)

主题=“针对 {a} 发出警报

文本=(weburl,error_msg)

这一切都很完美。因为两个脚本有两个单独的电子邮件功能。

当我尝试创建通用的单一函数时遇到问题

由于位置参数 a、b、c 相同。我被要求创建一个通用函数

def send_email(a,b,c,*args)

在这里我不知道如何将 file_count 的值获取到 fc 和 file_size_in_bytes, file_size 到 fs

python arguments option-type
1个回答
0
投票

在 *args 中将返回给函数提供的参数的元组。您可以简单地通过索引获取它们来访问它们。

在你的情况下你的功能:

def Send_email(a, b, c , file_count, file_size_in_bytes):
    ...

可以写成:

def Send_email(a, b, c, *args):
    file_count = args[0]
    file_size_in_bytes = args[1]
© www.soinside.com 2019 - 2024. All rights reserved.