Python参数如何传入?,python传参有哪些方法

Python 参数传递详解

在 Python 编程中,“传入”通常涉及三个层面:函数参数传递类构造函数传参以及命令行参数传递,理解这些机制是编写高效、灵活代码的基础。

函数参数传递

这是最常见的场景,指在调用函数时将数据传递给函数内部。

Python函数参数的4种传递方式:位置参数、关键字参数、默认参数、可变参数(*args, kwargs)
加载中
Python函数参数的4种传递方式:位置参数、关键字参数、默认参数、可变参数(*args, kwargs)
  • 位置参数 (Positional Arguments)
    按照定义的顺序进行传递。

    def greet(name, age):
        print(f"你好 {name},你今年 {age} 岁。")
    greet("Alice", 25)  # 必须按顺序传入
  • 关键字参数 (Keyword Arguments)
    通过“参数名=值”的形式传递,可以无视参数的定义顺序。

    greet(age=30, name="Bob")
  • 默认参数 (Default Arguments)
    在定义函数时为参数指定默认值,调用时如果不传该参数,则使用默认值。

    def power(base, exponent=2):
        return base  exponent
    print(power(3))    # 使用默认值 2,结果为 9
    print(power(3, 3)) # 传入 3,结果为 27
  • 可变长度参数 (Variable-length Arguments)
    当你不确定会传入多少个参数时使用:

    Python参数如何传入?,python传参有哪些方法

    • `args`接收任意数量的位置参数,并在函数内部以 tuple (元组) 形式存储。
    • `kwargs`接收任意数量的关键字参数,并在函数内部以 dict (字典) 形式存储。
      def flexible_func(args, kwargs):
        print(f"位置参数: {args}")
        print(f"关键字参数: {kwargs}")

    flexible_func(1, 2, 3, name=”Python”, version=3.12)


Python 的参数传递机制 (核心原理)

很多初学者会混淆 Python 是“值传递”还是“引用传递”,Python 使用的是 传对象引用 (Pass by Object Reference)

  • 不可变对象 (Immutable Objects)
    int, float, str, tuple,当你向函数传入这些对象并尝试修改时,实际上是创建了一个新的对象,原对象不会改变。
  • 可变对象 (Mutable Objects)
    list, dict, set,如果你在函数内部修改了传入的可变对象(例如使用 .append()),原对象会发生改变

类中的参数传递

在面向对象编程中,参数通常通过构造函数

Python参数如何传入?,python传参有哪些方法

__init__ 传入,用于初始化对象的属性。

class User:
    def __init__(self, username, email):
        self.username = username  # 将传入的参数赋值给实例属性
        self.email = email
user1 = User("coder_jack", "jack@example.com")

命令行参数传递

当你从终端(Terminal/CMD)运行 Python 脚本时,需要通过命令行向程序传递参数。

  • 使用 sys.argv (基础方式)
    sys.argv 是一个列表,包含了命令行传递的所有参数。

    import sys
    # 运行 python script.py hello 123
    # sys.argv[0] 是脚本名称
    # sys.argv[1] 是 "hello"
    print(f"参数列表: {sys.argv}")
  • 使用 argparse 模块 (专业方式)
    对于复杂的工具类脚本,推荐使用内置的 argparse 模块,它支持自动生成帮助文档、类型检查和默认值设置。

    import argparse
    parser = argparse.ArgumentParser(description="示例脚本")
    parser.add_argument("--name", type=str, help="输入姓名")
    parser.add_argument("--count", type=int, default=1, help="重复次数")
    args = parser.parse_args()
    print(f"Hello {args.name} "  args.count)

    Python参数如何传入?,python传参有哪些方法

总结对比

传递方式 适用场景 特点
位置参数 参数较少且顺序固定 简单直接
关键字参数 参数较多或顺序不确定 提高代码可读性
`argskwargs` 编写装饰器或通用接口 极高的灵活性
sys.argv 简单的脚本运行 仅限字符串,需手动转换类型
argparse 专业的命令行工具 功能强大,支持类型检查和帮助信息

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/489760.html

(0)
AI搜索引用机制2026年如何运作,如何提高AI搜索的引用率?
上一篇 2026年7月13日 02:42
2026年AI搜索信源权重如何分布,如何提高AI搜索排名?
下一篇 2026年7月13日 02:42

相关推荐

  • 个人域名怎么转为企业注册?域名个人转企业流程

    个人域名转为企业注册的核心在于完成域名持有者信息的变更备案,这不仅是法律合规的要求,更是提升网站权重、获取企业级信任背书的关键一步,很多站长在创业初期习惯用个人身份证注册域名,成本低、流程快,但随着业务规模扩大,这种“个人身份”绑定“企业资产”的模式开始暴露出隐患,域名作为网站的核心资产,其权属清晰度直接影响S……

    服务器运维 2026年5月28日
    4800
  • mysql服务器管理权限有哪些呢,怎么设置?

    MySQL服务器管理权限是控制用户对数据库资源访问范围的系统级安全机制,主要包括全局权限、数据库权限、表权限、列权限、存储过程/函数权限以及代理用户权限,通过GRANT和REVOKE语句集中管理,并依赖权限层级校验规则和权限缓存刷新机制来实现即时生效,权限层级与分类体系MySQL的权限模型遵循层级校验逻辑,每个……

    2026年8月2日
    600
  • 如何设计高并发服务器架构?2026最佳方案与性能优化指南

    企业数字化转型的坚实基石服务器架构与管理是现代企业IT基础设施稳定、高效和安全运行的核心命脉,一套设计精良、管理得当的服务器系统,能够支撑关键业务应用流畅运转,保障数据安全,并有效应对不断增长的业务需求和潜在风险,服务器架构设计的核心原则与关键要素服务器架构绝非简单的硬件堆砌,而是需要深思熟虑的系统工程,业务需……

    2026年2月14日
    25930
  • 淄博化工厂生产系统卡顿换租物理服务器有效吗?,怎么解决?

    淄博化工厂生产系统卡顿的根源多半不在软件,而在虚拟化层资源争抢,换租物理服务器是当前最直接的缓解方案,化工生产环境里,DCS数据采集、ERP单据流转、MES工单下达,每一环都卡不得,系统卡顿轻则影响办公效率,重则耽误生产调度,本文就从淄博本地化工企业的实际场景出发,聊聊生产系统卡顿的原因、物理服务器和云主机的区……

    2026年8月10日
    300
  • 个人注册域名怎样查询?域名注册查询入口

    个人注册域名前,务必先通过工信部备案的正规注册商或WHOIS全球查询系统进行可用性检查,确认无冲突且符合个人命名规范后,再结合价格与售后完成注册,很多人以为域名就像电话号码,想打哪个就注册哪个,但现实是优质资源早已枯竭,对于个人站长、自由职业者或品牌创业者来说,找到那个既顺口又未被占用的域名,往往需要一番周折……

    2026年5月28日
    3300
  • 服务器开一段时间任务管理器打不开怎么办,解决方法大全

    服务器运行一段时间后任务管理器无法打开,核心症结通常指向系统资源耗尽、关键进程冲突或系统文件损坏,而非单纯的硬件故障,解决问题的关键在于排查内存泄漏、终止卡死的后台进程以及修复系统组件,盲目重启仅能暂时缓解,无法根治问题, 资源耗尽导致系统响应失效这是最常见的技术诱因,直接体现了服务器运维中的资源管理短板,内存……

    2026年3月29日
    14400
  • Linux下Web应用服务器有哪些?,哪个好?

    在Linux环境下,常见的Web应用服务器包括Nginx、Apache HTTP Server、Tomcat、Node.js、Caddy、Lighttpd、Gunicorn等,实际选型需要根据业务类型、并发规模和团队技术栈决定,多数生产环境会组合使用反向代理和动态应用服务器,主流Linux Web应用服务器阵营……

    2026年7月30日
    500
  • 服务器硬盘如何存储数据?深入解析存储原理与机制!

    服务器硬盘如何存储数据,本质上是一个融合物理介质、逻辑组织与数据保护的精密系统工程,其核心在于将用户或应用程序产生的二进制数据(0和1)持久化地记录在存储介质上,并通过复杂的逻辑架构确保其高效访问、安全可靠,具体实现涉及多个层面的技术协同: 物理存储:介质如何记录0和1服务器硬盘存储数据的物理基础是存储介质,主……

    2026年2月7日
    13210
  • 服务器怎么与数据库相连接?服务器连接数据库步骤详解

    服务器与数据库相连接的核心机制在于建立稳定的网络通信链路、配置正确的连接参数以及采用高效的连接池技术,三者缺一不可,共同确保数据传输的实时性、完整性与安全性,这一过程并非简单的物理连接,而是涉及协议握手、身份验证、会话管理等一系列复杂的软件交互逻辑, 连接前的环境准备与基础配置在探讨具体连接方式之前,必须确保服……

    2026年3月23日
    8800
  • 服务器很慢是什么原因,服务器运行缓慢怎么解决

    服务器响应速度直接决定业务生死,核心症结往往集中在资源瓶颈、配置缺陷与代码低效三个维度,解决服务器性能问题,必须建立从硬件层到应用层的全链路排查机制,任何单一环节的疏忽都会导致整体性能崩塌,服务器性能优化的本质,是在有限资源下实现吞吐量的最大化,而非盲目扩容, 硬件资源瓶颈:物理层面的硬性天花板当系统响应迟滞时……

    2026年3月24日
    17900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注