622|2

220

帖子

1

TA的资源

一粒金砂(高级)

楼主
 

共读入围:《趣味微项目,轻松学Python》+args函数、模块导入 [复制链接]

 

*args 的用途和工作原理:

  • 实参位置参数是指那些在函数调用时按照顺序直接传递的参数,这些参数不需要指定形参名。例如,在函数调用 func(a, b, 1) 中,a、b 和 1 都是位置参数。
  • 用途:*args 用于在函数定义中处理那些数量不确定的位置参数。这意味着,通过使用 *args,你可以传递任意数量的位置参数给函数。
  • 工作原理:在函数内部,args 实际上是一个元组,它包含了所有传递给函数的位置参数。单个星号(*)是以新元组形式打包实参中所有的位置参数并将新元组赋值给星号后的变量 args,即收集位置参数。

 

 

我理解您想要使用argparse模块来创建一个命令行工具,该工具接受一个位置参数(即单词),并希望get_args()函数是程序的第一个函数,以便立即看到预期的输入。以下是一个简化的示例,展示了如何使用argparse来定义这样的命令行参数,并编写一个get_args()函数来获取这些参数。

首先,您需要导入argparse模块,并定义一个函数get_args()来设置命令行参数并解析它们。然后,在您的主程序或脚本的其余部分中,您可以调用这个函数来获取参数。

 在argparse.ArgumentParseradd_argument()方法中,'word'是参数的名字(在args对象中作为属性使用),metavar='WORD'定义了帮助信息中显示的占位符,help参数提供了关于该参数的简短描述。

下来上传一段代码辅助理解。

import argparse  # 导入 argparse 模块,用于处理命令行参数  
  
def get_args():  
    # 创建一个 ArgumentParser 对象  
    parser = argparse.ArgumentParser(description='Process a single word.')  # 设置解析器的描述  
    # 添加一个位置参数  
    parser.add_argument('word', metavar='WORD', help='The word to be processed.')  # 添加一个名为 'word' 的位置参数  
    # 注意:这里我们没有添加其他不需要的参数  
    # 使用 parse_args() 方法解析参数(从 sys.argv 中读取)  
    args = parser.parse_args()  # 注意这里是 parse_args 而不是 parse args  
    return args  # 返回解析后的参数对象  
  
# 在主程序中调用 get_args()  
def main():  
    # 获取命令行参数  
    args = get_args()  # 调用 get_args 函数获取参数  
    # 打印出接收到的单词  
    print(f'Processing word: {args.word}')  # 使用 f-string 格式化字符串并打印出单词  
  
# 如果这个脚本被直接运行(而不是被导入为一个模块),则执行 main() 函数  
if __name__ == '__main__':  
    main()  # 当脚本作为主程序运行时,执行 main 函数

Python脚本使用了argparse模块来定义并处理命令行参数。脚本的主要功能是接收一个位置参数,并打印出该参数。

以下是脚本的详细总结:

  1. 导入模块
    • 脚本首先导入了argparse模块,这是一个Python标准库模块,用于编写用户友好的命令行接口。
  2. 定义get_args函数
    • 该函数创建了一个ArgumentParser对象,并设置了描述信息('Process a single word.')。
    • 使用add_argument方法添加了一个位置参数word,并设置了其在帮助信息中的占位符('WORD')和描述信息('The word to be processed.')。
    • 使用parse_args方法解析命令行参数,并将结果返回为一个命名空间对象。
  3. 定义main函数
    • 该函数调用了get_args函数来获取命令行参数。
    • 使用f-string(格式化字符串字面量)来打印出接收到的单词。
  4. 主程序入口
    • 使用if __name__ == '__main__':来判断脚本是否作为主程序运行。
    • 如果是,则执行main函数。

 

模块导入:

 

Python提供了多种模块导入的方式,以下是清晰的分点表示和归纳:

  1. 使用import语句导入整个模块
  2. 使用from ... import ...语句导入模块中的特定内容
  3. 为导入的模块或内容设置别名
  4. 导入模块中的所有内容(不推荐):
  5. 导入包中的模块
  6. 相对导入(通常在包内部使用):
  7. 动态导入

书中没有详细的介绍,我这里提一个,贴出重要的。

 

模块导入:

模块的导入一般写在文件的开头。

常用的组合形式如:
import 模块名 (可以一次导入多个模块,模块名之间用逗号隔开)from 模块名 import 类、变量、方法等
from 模块名 import *
import 模块名 as 别名
from 模块名 import 功能名 as 别名

 

感觉理解的不是很好,不知道怎么写,先暂时到这里,后面我理解的更好一点了,再贴出来。 

此帖出自编程基础论坛

最新回复

都差不多吧,反正是他们连起来就对上了。   详情 回复 发表于 2024-6-9 11:15
点赞 关注(1)
 

回复
举报

6974

帖子

11

TA的资源

版主

沙发
 

都差不多吧,反正是他们连起来就对上了。

此帖出自编程基础论坛

点评

哈哈,感觉 还是要搞细一点,总感觉还差一点点。  详情 回复 发表于 2024-6-10 08:20
 
 
 

回复

220

帖子

1

TA的资源

一粒金砂(高级)

板凳
 
lugl4313820 发表于 2024-6-9 11:15 都差不多吧,反正是他们连起来就对上了。

哈哈,感觉 还是要搞细一点,总感觉还差一点点。

此帖出自编程基础论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表