使用当前类实例的属性作为方法参数的默认值[重复]

2024-04-14

可能的重复:
作为实例方法结果的参数默认值 https://stackoverflow.com/questions/13075044/default-value-of-parameter-as-result-of-instance-method

虽然可以在 python 中为函数参数设置默认值:

def my_function(param_one='default')
    ...

似乎无法访问当前实例(自身):

class MyClass(..):

    def my_function(self, param_one=self.one_of_the_vars):
        ...

我的问题:

  • 我无法访问当前实例来设置函数中的默认参数,这是真的吗?
  • 如果不可能:原因是什么?可以想象这在Python的未来版本中是可能的吗?

写为:

def my_function(self, param_one=None): # Or custom sentinel if None is vaild
    if param_one is None:
        param_one = self.one_of_the_vars

我认为可以肯定地说,由于 Python 的本质,这种情况永远不会发生self在函数启动之前并不真正存在...(你不能在它自己的定义中引用它 - 就像其他所有东西一样)

例如:你不能这样做d = {'x': 3, 'y': d['x'] * 5}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用当前类实例的属性作为方法参数的默认值[重复] 的相关文章

  • 我正在用 python 编写一个电报机器人

    我想通过Python编写一个电报机器人 但它不起作用 import telebot bot telebot TeleBot my token bot message handler content types text def sendin
  • Python:我可以修改元组吗?

    我有一个 2 D 元组 实际上我以为 它是一个列表 但错误说它是一个元组 但无论如何 该元组的形式为 浮点数 val prod id 现在我有一个字典 其中包含 key gt prod id 和 value prod name 现在 我想将
  • python列表理解和extend() [重复]

    这个问题在这里已经有答案了 深入学习 Python 2 7 1 但未能理解这一点 几个小时 gt gt gt a 1 2 gt gt gt b 3 4 gt gt gt gt gt gt a extend b 0 gt gt gt a 1
  • 将 KB/MB/GB 等字符串解析为数值

    为了不发明自行车 我想知道是否有任何库能够将大小字符串 MB KB TB MiB KiB 等 的各种表示形式解析为基于数字字节的值 ActiveState Receipes 有一个示例here http code activestate c
  • 为什么我在 Python 中收到“连接被拒绝”错误? (插座)

    我是套接字新手 请原谅我完全缺乏理解 我有一个服务器脚本 server py usr bin python import socket import the socket module s socket socket Create a so
  • 如何将当前日期分配给 odoo v8 中的日期字段?

    我想将当前日期分配给以下代码中的日期字段 start date calendar obj create cr uid name rec res act ion user id rec res asgnd to id start date l
  • 如何从 python 脚本更改 python 文件中的变量值

    我目前有一个 python 文件 其中包含一堆带有值的全局变量 我想从一个单独的 python 脚本永久更改这些值 我尝试过 setattr 等 但似乎不起作用 有没有办法做到这一点 简短的回答是 不 不值得这么麻烦 听起来您正在尝试创建一
  • Unpickle 二进制文件为文本[重复]

    这个问题在这里已经有答案了 我需要对基本上如下所示的系统进行一些维护 复杂的遗留Python程序 gt 二进制pickle文件 gt 另一个复杂的遗留Python程序 这需要准确弄清楚中间 pickle 文件中的内容 我怀疑文件格式比生成和
  • 多级QTreeView

    我很难理解如何使用 QTreeView 和 QStandardItemModel 设置多级 QTree 这是我所拥有的 from PySide QtGui import import sys class MainFrame QWidget
  • 在用户提交的正则表达式中查找捕获组

    我有一个 python 应用程序 需要处理用户提交的正则表达式 出于性能考虑 我想禁止捕获组和反向引用 我的想法是使用另一个正则表达式来验证用户提交的正则表达式不包含任何命名或未命名的组捕获 如下所示 def validate user r
  • 模拟导入失败

    我该如何制作import pkg失败moduleA py 我可以打补丁pkg如果从中导入某些内容则会失败 否则不会失败 test py import os import moduleA from unittest mock import p
  • 使用 pymongo 查询空字段

    我想使用 python 查询 mongo 中的空字段 但是它很难处理单词 null 或 false 它要么给我错误 它们在 python 中未定义 要么在 mongo 中搜索字符串 null 和 false 这两种情况我都不希望发生 col
  • 插入失败“OperationalError:没有这样的列”

    我尝试使用我尝试修复的姓名和电话创建一个数据库 但它会随时向我重播 File exm0 py line 14 in
  • 来自字典列表列表的 Pandas DataFrame

    我有一个数据结构 它是字典列表的列表 Height 86 Left 1385 Top 215 Width 86 Height 87 Left 865 Top 266 Width 87 Height 103 Left 271 Top 506
  • Mac OS 上的 pybluez 安装错误

    我尝试安装pybluez使用以下命令 pip install pybluez sudo easy install pybluez 但对于这两个命令我最终都会出错 环境 Mac OSX 10 9 1 Python 2 7 点日志 cc fno
  • 将数值和分类数据混合到具有密集层的 keras 序列模型中

    我在 Pandas 数据框中有一个训练集 我将此数据框传递到model fit with df values 以下是有关 df 的一些信息 df values shape 981 5 df values 0 array 163 0 6 83
  • 尝试输入字符串时出现名称错误[重复]

    这个问题在这里已经有答案了 import pickle import os import time class Person def init self number address self number number self addr
  • Python 中的“lambda”是什么意思,最简单的使用方法是什么?

    您能否给出一个示例和其他示例来说明何时以及何时不使用 Lambda 我的书给了我一些例子 但它们很令人困惑 拉姆达 起源于拉姆达演算 http en wikipedia org wiki Lambda calculus和 AFAIK 首先实
  • Snakemake根据字典输入和输出

    我正在尝试重命名 Snakemake 管道中的一些文件 假设我有三个文件 FileA txt FileB txt FileC txt 我希望根据字典重新命名它们dict A 0 B 1 C 2 to get RenamedFile0 txt
  • 安装 confluence-kafka 时“文件名或扩展名太长”?

    我在使用 pip install confluence kafka 安装 confluence kafka 时遇到一些问题 但我收到此错误 文件名或扩展名太长 详细信息如下 Collecting confluent kafka Using

随机推荐

  • DurandalJS 路由行为

    我拥有的 试图了解发生了什么以及如何控制它 我对尚未经过身份验证的用户有一个 公共 视图 对经过身份验证的用户有一个 主页 视图 这是我的路线配置 app start then function Replace viewmodels in
  • Golang 函数指针作为结构的一部分

    我有以下代码 type FWriter struct WriteF func p byte n int err error func self FWriter Write p byte n int err error return self
  • 选择特定时间范围内 datetime64[ns] 类型的观察

    我有一个熊猫数据框 dfnew 其中一列 时间戳 是datetime64 ns 类型 现在我想查看特定时间范围内有多少观测值 比如说 10 00 00 到 12 00 00 dfnew timestamp dfnew timestamp a
  • 英特尔 SGX 开发者许可和开源软件

    是否可以获得许可的开发人员证书 用于在生产模式下签署经过安全审查 社区开发的开源 SGX 软件二进制文件 并将其发布到 apt 或 rpm 等开源存储库上 我刚刚询问了Intel SGX团队 他们说只有经过验证的供应商才能获得证书并在生产模
  • socket.io - 发送对象必须使用 JSON

    我在前端有一个对象 我想将它广播到所有连接的客户端 我可以按照我定义的方式将其作为纯粹的对象发送吗 或者我总是必须在发送之前将其字符串化为 JSON 对象 我的对象 var myBox x 400 y 700 w 231 h 199 c r
  • 无法使用 git 扩展加载我的私钥

    过去2小时我一直在努力 我使用 xp dev 作为 git 存储库提供程序 因为我已经付款并且那里有 svn 存储库 我已经给了 xp dev 我的公钥 但是当克隆我的仓库时 我被拒绝了 C Program Files x86 Git bi
  • Angular 4:如何观察对象的变化?

    ETA 我知道有多种方式可以观看我的form进行更改 这不是我想做的 正如标题所示 我问的是如何监视object 下面显示的应用程序仅用于说明目的 请回答我提出的问题 谢谢 我有这个简单的应用程序 import Component OnIn
  • 使用shared_ptr的例子?

    你好 我今天问了一个关于如何在同一个向量数组中插入不同类型的对象 https stackoverflow com questions 3475030 different types of objects in the same vector
  • XML 模式:扩展 xsd:choice 以便创建选择的联合(而不是序列)

    我有以下 XML 架构
  • Visual Studio Code 自定义缩进样式

    无论出于何种原因 我讨厌它 但事实就是如此 我公司的标准风格是将大括号缩进到与它们包含的代码相同的水平 如下所示 public static string StringName get return string value 这在 Visu
  • 如何在 Django 中使用 UNION + 添加假列

    我正在尝试在 django ORM 中转换以下查询 SELECT MONTH date AS Month col1 col2 col3 col3 SUM col4 col4 SUM col5 col5 FROM table1 WHERE d
  • 我应该检查构造函数参数的类型(以及其他地方)吗?

    Python 不鼓励检查类型 但在许多情况下这可能很有用 检查构造函数参数 例如检查敌人的布尔值 字符串 字典等 如果我不这样做并将对象的成员设置为参数 稍后会导致问题 检查函数参数 在属性中 如果有人设置了错误的值或不同的类型 我应该快速
  • 读取多个 CSV 文件

    需要提取大量信息 即 file1 10948 Book Type1 file2 SHA512 0 10948 file3 0 10948 SHA512 c3884fbd7fc122b5273262b7a0398e63 我想把它变成类似的东西
  • C语言中什么情况下需要释放内存?

    我可能被误导了 但据我所知 操作系统会在程序退出或崩溃后清理内存 如果是这样 在程序结束时释放内存有多大用处 我知道 如果程序正在运行并且忽略释放 内存可能会变得 满 但是如果程序已经要结束并且操作系统释放了程序使用的所有内存 那么手动释放
  • 指针参数是否需要通过引用传递

    我有一个非常简单的链表 我的addNode Node list int value 如果我通过引用传递列表 函数只会将新节点添加到我的链接列表中 如果我按值传递列表 则不会 addNode Node list int value 我知道什么
  • “make”是否可以检查依赖项的 mtime 在运行之间是否“不同”,而不仅仅是它是否比目标新?

    如果 foo user cpp 依赖于 foo h 则构建了 foo user cpp 然后将 foo h 的修改时间设置为更早的时间 make 将不会重建 foo user cpp 因为 foo cpp 是 较新的 我更希望 make 记
  • 什么是对象分解?

    我试图理解对象分解的含义 并在互联网上阅读了很多内容 但每个资源都用大量我无法理解的关键字进行讨论 因此 这些资源希望您了解一些术语 我需要一些从头开始列出分解基础知识的东西 它不仅仅是将设计分解为对象吗 如果没有 任何描述将不胜感激 提前
  • 如何使用 NCO 编辑 netcdf 文件中的全局属性

    我正在尝试编辑 netcdf 文件中的全局属性之一 START DATE 2016 05 12 00 00 00 我想将日期字符串更改为另一个日期 如何使用 nco 包执行此操作 我已经看到我可以使用 ncatted a D dbg lvl
  • 错误:无法解析“:app@debugAndroidTest/compileClasspath”的依赖关系:无法解析junit:junit:4.12

    我创建了一个新的 android 项目 它显示构建错误 我尝试了现有的答案 无法解析 com android support appcompat v7 24 0 1 https stackoverflow com questions 395
  • 使用当前类实例的属性作为方法参数的默认值[重复]

    这个问题在这里已经有答案了 可能的重复 作为实例方法结果的参数默认值 https stackoverflow com questions 13075044 default value of parameter as result of in