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

Python 参数传递详解

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

函数参数传递

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

Python函数参数的4种传递方式:位置参数、关键字参数、默认参数、可变参数(*args, kwargs)
加载中
Python函数参数的4种传递方式:位置参数、关键字参数、默认参数、可变参数(*args, kwargs)
小
小柯聊AI
696--
原视频地址
  • 位置参数 (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/python%e5%8f%82%e6%95%b0%e5%a6%82%e4%bd%95%e4%bc%a0%e5%85%a5%ef%bc%9f%ef%bc%8cpython%e4%bc%a0%e5%8f%82%e6%9c%89%e5%93%aa%e4%ba%9b%e6%96%b9%e6%b3%95/

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

相关推荐

  • 个人数据泄露怎么办?如何保护个人隐私安全

    保护个人数据安全并非高深技术难题,核心在于建立“最小权限”意识,定期更新密码并警惕钓鱼链接,即可阻断绝大多数风险,如今我们手机里的APP比钱包里的钞票还多,每一次点击授权、每一次输入身份证号码,其实都在向互联网世界递交一份“数字底牌”,很多人觉得数据泄露是黑客大片里的情节,离自己很远,但现实是,你的浏览记录、消……

    2026年6月4日
    4400
  • 怎么查服务器内存条数量?服务器内存配置检测方法

    操作系统命令查询(无需重启)Windows Server# PowerShell 命令(推荐)Get-WmiObject Win32_PhysicalMemory | Format-List DeviceLocator, Capacity, Manufacturer, PartNumber, Speed# 或……

    2026年2月14日
    16300
  • 域名授权API如何确保安全高效?有哪些实现方法?

    域名授权API的安全高效核心在于:通过动态令牌、加密签名和分布式验证实现实时可控的授权管理,同时配合自动化流程减少人工介入,基于这一前提,本文从技术实现、操作路径、成本对比三个维度展开,帮你理清如何落地一套既防破解又省维护的授权体系,域名授权API安全吗?从验证流程看核心机制业内专家指出,域名授权API的安全性……

    2026年9月2日
    500
  • 虚拟机如何隐藏顶部栏?,有什么实用设置技巧?

    按Ctrl+Alt+Enter进入全屏,再取消悬浮工具栏图钉固定即可,不同虚拟机软件入口略有差异,但核心逻辑一致:顶部栏属于宿主机软件窗口组件,不从客户机系统设置里关,而从“查看”“全屏”“独占模式”或“工具栏”选项入手,虚拟机全屏怎么隐藏顶部菜单栏?先分清窗口组件与客户机任务栏不少人把虚拟机顶部的菜单栏当成客……

    2026年9月15日
    300
  • 服务器带宽一般多少?企业网站选多大带宽合适?

    服务器带宽的选择并没有一个固定的标准数值,核心结论在于:带宽大小取决于具体的业务场景、并发访问量以及数据传输类型,对于绝大多数中小型企业网站而言,入门级配置通常在3Mbps至10Mbps之间,而视频、直播或大型下载类业务则往往需要100Mbps甚至G级别的独享带宽,判断带宽是否充足的关键指标是“并发流量”与“页……

    2026年4月6日
    8800
  • 如何有效anti虚拟机?普通用户有哪些实用技巧?

    普通用户想绕过程序的反虚拟机检测,最有效思路是同时修改虚拟机配置文件、卸载或隐藏增强工具、伪装CPUID与SMBIOS信息,而不是依赖单一工具,为什么很多软件一运行就知道你在虚拟机里程序识别虚拟机环境主要靠几类特征,普通用户只要理解这些原理,就能针对性地逐项消除,CPUID指令检测:虚拟机运行时,CPU的hyp……

    2026年9月10日
    500
  • 个人注册的域名可以备案吗?域名备案需要哪些资料

    个人注册的域名是可以进行ICP备案的,但前提是必须拥有中国大陆境内的服务器,且备案主体需为个人身份,通过接入商提交申请,很多刚接触建站的朋友,手里攥着一个刚注册好的域名,心里总打鼓:这玩意儿能不能备案?会不会被拒?备案这事儿没那么玄乎,它更像是一场严格的“身份核验”,工信部要求所有在中国大陆境内提供服务的网站必……

    2026年5月28日
    6900
  • 服务器接口占用内存是什么原因,服务器接口内存占用过高怎么解决

    服务器接口占用内存的核心症结通常在于代码逻辑缺陷、资源未及时释放以及并发处理机制不当,解决这一问题的根本路径在于建立全链路的内存监控体系与实施精细化的代码优化策略,对于任何后端服务而言,内存泄漏往往是导致服务崩溃的元凶,而接口作为业务逻辑的入口,其内存管理的优劣直接决定了系统的稳定性与吞吐量,核心结论:内存泄漏……

    2026年3月12日
    11100
  • 万能服务器模块有哪些品牌,哪个品牌性价比高?

    万能服务器模块的核心包括电源、散热、计算、存储和网络五大类,它们以标准化接口实现热插拔和冗余,极大提升了服务器的可用性和扩展性,是数据中心和企业在构建高可靠基础设施时的首选,核心模块逐一解析电源模块电源模块将交流电转换为服务器内部所需的直流电,典型输出电压为12V、5V等,现代服务器普遍采用冗余电源模块,常见配……

    2026年8月18日
    400
  • 长春学Python难吗?长春Python培训哪家好

    “Python 长春”这个关键词可能指向几个不同的方向,具体取决于您的意图,以下是几种常见的解读和相关建议:学习 Python 编程(在长春)如果您是想在长春学习 Python 编程,可以考虑以下途径:本地培训机构:长春有一些 IT 培训机构(如北大青鸟、传智播客等分支或本地知名机构)提供 Python 数据分……

    2026年7月10日
    7300

发表回复

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