位置参数与关键字参数

2024-03-05

基于this http://infohost.nmt.edu/tcc/help/pubs/python/web/def.html

位置参数是后面不跟等号的名称 (=) 和默认值。

关键字参数后跟一个等号和一个表达式 给出它的默认值。

def rectangleArea(width, height):
    return width * height

    
print rectangleArea(width=1, height=2)

问题。我假设两者width and height是位置参数。那为什么我们也可以用关键字参数语法来调用它呢?


您引用的那段文字似乎对两个完全不同的事情感到困惑:

  • 位置参数和关键字参数是calls到一个函数(参见Python 参考部分5.3.4 Calls http://docs.python.org/reference/expressions.html#calls).
  • 默认值是函数的一个特征定义, as per section 7.6 Function definitions http://docs.python.org/reference/compound_stmts.html#function-definitions

我怀疑制作课件的人不是totally熟悉 Python :-) 因此,您提供的链接质量不是很好。


In your call对于您的函数,您正在使用“关键字参数”功能(其中参数被命名而不是依赖于其位置)。如果没有它,值将仅根据顺序绑定到名称。因此,在此示例中,以下两个调用是等效的:

def process_a_and_b(a, b):
   blah_blah_blah()

process_a_and_b(1, 2)
process_a_and_b(b=2, a=1)

进一步举例,请参考以下定义和调用:

def fn(a, b, c=1):        # a/b required, c optional.
    return a * b + c

print(fn(1, 2))            # returns 3, positional and default.
print(fn(1, 2, 3))         # returns 5, positional.
print(fn(c=5, b=2, a=2))   # returns 9, named.
print(fn(b=2, a=2))        # returns 5, named and default.
print(fn(5, c=2, b=1))     # returns 7, positional and named.
print(fn(8, b=0))          # returns 1, positional, named and default.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

位置参数与关键字参数 的相关文章

随机推荐

  • 优化分配的模板技巧

    I have struct DoubleVec std vector
  • 包的导入会改变类的可见性吗?

    我刚刚了解到 一个类可以用 修饰符 public 在这种情况下 类对所有类可见 到处 如果一个类没有修饰符 默认值 也称为 包私有 仅可见 在它自己的包中 这是一个明确的声明 但这些信息干扰了我对包导入的理解 这很容易出错 我认为导入包会使
  • ASP.NET MVC 中的命名空间等效吗?

    在 Rails 中 我可以创建一个命名空间 以便将视图封装在给定名称 或 URL 前缀 内 我想要做的是创建一个命名空间 或我认为的区域 它将所有管理员控制器封装在给定名称内 例如 我想创建一个 Admin 命名空间 每当我访问 www m
  • 如何在量角器的输入上获取文本

    在量角器的文档中 我看到以下示例 describe by model function it should find an element by text input model function var username element
  • AWS Lambda 函数不保存 VPC 选择

    我无法使用 VPC 选择在 AWS 上保存我的 Lambda Node js 函数 它根本不保存 也没有从 AWS 收到任何消息 当我尝试在不选择 VPC 的情况下进行保存时 它可以正常工作 但是当我选择 VPC 时 它根本不保存 Its
  • debug:获取对象的所有实例变量的列表(未知类型)

    有没有任何方法可以获取 通过调试 Objective c 中未知对象的所有实例变量的列表 我使用 lldb 进行调试 但我承认我不太了解它 显然我无法查看这个未知对象的标头 我需要在调试时执行此操作 但如果不可能 我可以在运行时使用替代方法
  • angularjs 谷歌地图 - 带窗口的标记 - 信息窗口未显示

    尝试使用以下方式获取应用程序角度谷歌地图 with 通过多个标记markers指示 通过的单个信息窗口window指示 我已经了解了 API 和 github 网站上的多个已解决的问题 但就是无法让它工作 jsfiddle http jsf
  • automapper,映射到接口

    我正在使用 automapper 适用于 net 3 5 这是一个例子来说明我正在尝试做的事情 我想将 A 对象映射到 B 对象 类定义 class A public I1 MyI get set class B public I2 MyI
  • 如何只读 TFS 工作项字段但不隐藏

    我将新的工作项添加到 tfs 例如 工作项类型 cab 状态 新 活动 关闭 我将字段和表单元素添加到表单布局中 例如客户备注 类型 字符串 在流程模板工作流中添加了活动状态的只读字段规则 但当我没有输入将新更改为活动的文本时 它会被隐藏
  • 无法访问隐藏,未找到 com.google.android.gms.common.internal.Hide 的类文件

    在 android studio 中构建我的本机 android 应用程序时出现以下错误 错误 无法访问隐藏 com google android gms common internal Hide 的类文件未找到 应用程序详细信息 我已经创
  • 如何将FeatureCollection转换为GeometryCollection或多多边形?

    我有很多多边形需要手动绘制然后获取地理坐标 我需要获取 GeoJSON 格式绘制的多边形的坐标 在这种格式中 type MultiPolygon coordinates 37 4653933 55 3959159 type Polygon
  • 设置自动旋转启用/禁用 Android

    我正在开发一个 Android 应用程序 我希望用户能够按下一个按钮来启用或禁用自动旋转 我怎样才能用 Intent 做到这一点 我想我需要以某种方式将 ACCELEROMETER ROTATION 更改为 0 或 1 但我不知道如何精确地
  • MutationObserver 字符数据在没有 childList 的情况下使用

    直到最近我还以为childList true on MutationObserver添加 删除子节点时使用 例如来自 span span to span span span span and characterData true当观察到的元
  • String.valueOf(int) 中如何可能出现 ArrayOutOfBoundsException?

    为什么此代码有时会产生 ArrayOutOfBoundsException 这怎么可能String valueOf int public static String ipToString ByteString bs if bs null b
  • 如何使用 System.Data.OracleClient 将大 Blob 插入 Oracle 10G?

    尝试将 315K Gif 文件插入 Oracle 10g 数据库 每次我运行存储过程时都会收到此错误 ora 01460 请求未实现或不合理的转换 如果我使用存储过程 似乎有 32K 的限制 我在网上读到 如果您正在进行直接插入 则这不适用
  • 谷歌日历 API。向某人日历添加事件在身份验证时会引发错误“错误 401:invalid_client”

    我有一个 C 类库 我试图通过使用他 她的电子邮件地址和密码作为凭据来将事件添加到某人的日历中 所以我对其进行调试 一旦启动 互联网浏览器中就会打开一个新页面 并显示以下错误 代码如下 It crashes when calling Goo
  • 内置身份验证机制-API网关

    API网关具有执行授权的内置功能 但是 awslabs 提供的示例将 lambda 连接到 API 网关 其中 lambda 根据此进行授权code https github com awslabs serverless applicati
  • 是否有理由对十六进制 CSS 颜色值使用大写字母? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我发现 CSS 属性值中的颜色通常以大写形式编写 foo bar background color A41B35 color FFF 但您也可以
  • 在 json 中传递函数并执行

    有什么方法可以将函数作为 json 字符串传递 使用 JSON stringify 进行转换 将其发送到另一个函数 解析 json 然后执行 json 中的函数 我正在使用 jquery 和 javascript 是的你可以 有很多方法可以
  • 位置参数与关键字参数

    基于this http infohost nmt edu tcc help pubs python web def html 位置参数是后面不跟等号的名称 和默认值 关键字参数后跟一个等号和一个表达式 给出它的默认值 def rectang