hasattr 被称为方法,但它看起来像函数[关闭]

2024-04-25

在 Python 中,函数接受参数并可选择返回信息。

functionname(param1, param2)
returnvalue = functionname(param1, param2)

Python 中的一个方法被称为on一个东西。因此,首先指定对象,然后指定一个点,然后指定要执行的方法

objectname.methodname(param, param)

就像 Python rfind 和许多其他方法一样。

hasattr

hasattr 的用法如下:

hasattr(my_object, method_to_test_for_existence)

根据定义,这显然是一个函数。

为什么有些网站将 hasattr 称为方法而不是函数?

  • 测试护照 https://www.testpassport.com/news_Is_PACP-31-02_Exam_Difficult_to_Pass_189.html和他们的第一个问题。 (这个问题让我很担心,因为我正在准备 PCAP 考试:-))
  • 极客之极客 https://www.geeksforgeeks.org/python-hasattr-method/标题为“Python hasattr() 方法”(在第一行中他们说:“Python hasattr() 函数是一个内置实用函数”)

Python的官方文档是这样定义的(感谢@凯利·邦迪在这里 https://stackoverflow.com/questions/70415511/hasattr-is-called-a-method-but-it-looks-like-a-function/70415890#comment124474084_70415890!):

function https://docs.python.org/3/glossary.html#term-function

一系列向调用者返回一些值的语句。也可以传递零个或多个论点 https://docs.python.org/3/glossary.html#term-argument可以在主体的执行中使用。也可以看看范围 https://docs.python.org/3/glossary.html#term-parameter, method https://docs.python.org/3/glossary.html#term-method,以及函数定义 https://docs.python.org/3/reference/compound_stmts.html#function section

method https://docs.python.org/3/glossary.html#term-method

在类体内定义的函数。如果作为该类实例的属性调用,该方法将获取实例对象作为其第一个argument https://docs.python.org/3/glossary.html#term-argument(通常称为self). See function https://docs.python.org/3/glossary.html#term-function and 嵌套范围 https://docs.python.org/3/glossary.html#term-nested-scope.


正方形是长方形,但并非所有长方形都是正方形。在我解释世界的方式中,方法就是函数,但并非所有函数都是方法。方法的独特之处在于它是特殊类型的函数它也与类关联并可以访问类成员变量。

你的评价是正确的。

Python官方文档也有hasattr() in its “内置函数”列表 https://docs.python.org/3/library/functions.html(从技术上讲,它们实际上是内置的“可调用对象”,因为有些是可调用的类对象,而不是标准函数;谢谢@chepner https://stackoverflow.com/questions/70415511/hasattr-is-called-a-method-but-it-looks-like-a-function/70415890#comment124474234_70415890). hasattr()只是一个函数,而不是一个方法。

我相信@khelwood 是正确的: https://stackoverflow.com/questions/70415511/hasattr-is-called-a-method-but-it-looks-like-a-function#comment124473044_70415511

事实证明,人们有时在说功能时会说方法。

人们经常误用术语,并且人们只是错误地互换术语function and method尽管它们略有不同,但方法就是特殊类型的函数.

在编程中,滥用术语以及错误地将术语互换为另一种术语的情况时有发生。在我看来,大约 90% 的程序员滥用、混淆和互换了“setup”(名词)和“set up”(动词)这两个词。它也一直以简单的古英语出现!在我看来,大约 70% 的美国人误用了“good”和“well”,错误地互换了它们,以及“fewer”和“less”(“我的煎饼比你少”在语法上是错误的)不正确- 这个单词fewer应该被使用),“there's”与“there are”(我发现自己经常误用“there's”代替“there are”),等等。

无论如何,如果您看到有人在表示“功能”时误用了“方法”一词,只需在您的头脑中正确解释它并知道您是正确的:)。

这是我发现的一篇文章,我觉得还不错。教程点不是always正确,但这篇文章似乎是正确且写得好的:TutorialsPoint.com:Python 中方法和函数的区别 https://www.tutorialspoint.com/difference-between-method-and-function-in-python。 (话又说回来,他们也有可能抄袭了 Stack Overflow 上的一个答案,因为我以前见过他们这样做甚至没有给出归属。例证:这篇 TutorialsPoint.com 文章 https://www.tutorialspoint.com/What-is-the-difference-between-cerr-and-clog-streams-in-cplusplus貌似是直接抄袭的这个堆栈溢出答案 https://stackoverflow.com/questions/16772842/what-is-the-difference-between-cout-cerr-clog-of-iostream-header-in-c-when/46169665#46169665。我于 2020 年 10 月 23 日向 TutorialsPoint 发送了电子邮件,他们于 2020 年 10 月 25 日回复说:“当然,加布里埃尔,我们会调查此事。”)

也可以看看:

  1. 方法和函数有什么区别? https://stackoverflow.com/questions/155609/whats-the-difference-between-a-method-and-a-function (and 我对这个问题的回答 https://stackoverflow.com/questions/155609/whats-the-difference-between-a-method-and-a-function/70417274#70417274)
  2. TutorialsPoint.com:Python 中方法和函数的区别 https://www.tutorialspoint.com/difference-between-method-and-function-in-python
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

hasattr 被称为方法,但它看起来像函数[关闭] 的相关文章

随机推荐

  • 如何获取可公开访问的 crashlytics 报告 url?

    我想与一些第三方分享我的 crashlytics 崩溃报告 如何获得如下所示的可公开访问的网址 http crashes to s 419b5b28766 http crashes to s 419b5b28766 我是新来的 这是一个旧的
  • SchedPolicy:set_timerslack_ns 写入失败:不允许操作

    当我运行 Android 应用程序时 我在 Logcat 中遇到了这个问题 有谁知道这个问题以及如何解决它 依赖项是 implementation com android support appcompat v7 25 3 0 implem
  • 32x8 寄存器文件 VHDL 测试台

    我已经用 vhdl 编写了该电路的汇编代码 我想用测试台来模拟它 RegWrite 1 位输入 时钟 写寄存器个数 3位输入 写地址 写入数据 32 位输入 数据输入 读取 寄存器编号 A 3 位输入 读取地址 读取寄存器编号 B 3 位输
  • Spring Cloud 配置服务器无法使用本地属性文件

    我一直在玩弄位于此处的 github 上的 Spring Cloud 项目 https github com spring cloud spring cloud config https github com spring cloud sp
  • redis-cli 重定向到 127.0.0.1

    我在PC1上启动Redis集群 然后在PC2上连接它 当需要重定向到另一个集群节点时 它会显示Redirected to slot 7785 located at 127 0 0 1 但应该显示Redirected to slot 7785
  • 壁纸更换事件

    我可以在广播接收器中获取壁纸更改事件吗 我需要检测用户是否更改了壁纸 我怎样才能做到呢 我正在做的是这样的 我有一个可以自动更改壁纸的应用程序 如果用户使用不同的应用程序手动更改它 我想注意到它并询问用户是否要将新壁纸添加到我的应用程序的列
  • Kafka 消费者通过 JMX 滞后

    我正在尝试监控 Kafka 0 10 中消费者组的滞后情况 我们的消费者在 Kafka 而不是 ZooKeper 中跟踪他们的偏移量 这意味着我可以使用以下方式获取数据 bin kafka consumer groups sh bootst
  • 如何在 QScrollArea() 之上显示 QPropertyAnimation()?

    1 Intro 我工作于Python 3 7在 Windows 10 上并使用PyQt5对于图形用户界面 在我的申请中 我得到了一个QScrollArea 里面有一系列按钮 单击时 按钮必须移到该区域之外 我用一个QPropertyAnim
  • Spark Shell 监听本地主机而不是配置的 IP 地址

    我正在尝试通过 Spark Shell 运行一个简单的 Spark 作业 它看起来像 Spark shell 的 BlockManager 侦听本地主机而不是配置的 IP 导致 Spark 作业失败的地址 抛出的异常是 无法连接到本地主机
  • 尝试从 Delphi 打开 Excel 或 Word 时出现“接口不受支持”错误

    当使用旧的 Delphi 代码将一些文本输出到 Excel 或 Word 时 我在一台机器上遇到了 接口不支持 错误 我怎样才能解决这个问题 问题是计算机上以前版本的 Excel 未正确卸载 为了修复它 我使用了遵循指示 http soci
  • 启动日志“未找到事务管理器”

    当我启动jetty时 日志中出现以下行 INFO oejpw PlusConfiguration No Transaction manager found if your webapp requires one please configu
  • JavaScript/jQuery - offsetLeft 和 offsetTop

    当鼠标悬停在跨度上时 我想获取 offsetLeft 和 offsetTop 值 以便我可以将某些东西悬停在它附近 当我这样做时 两个值都为 0 有什么更好的方法来解决这个问题 我正在使用 jQuery 假设我开始 由服务器端脚本循环 sp
  • 基类和派生类中的数据成员相同

    我是 C 编程新手 我正在阅读继承概念 我对继承概念有疑问 如果基类和派生类具有相同的数据成员 会发生什么 另外请仔细阅读我的代码 如下所示 include stdafx h include
  • Flutter - 带有 SafeArea 的系统栏颜色

    我正在尝试添加SafeArea带有彩色系统栏的 flutter 应用程序的小部件 但不知何故它们总是变黑 override Widget build BuildContext context SystemChrome setSystemUI
  • powershell函数输出到变量

    我在 powershell 2 0 中有一个名为 getip 的函数 它可以获取远程系统的 IP 地址 function getip strComputer computername colItems GWMI cl Win32 Netwo
  • '迭代时不能对不可变值使用变异 getter:'self' 是不可变的'?

    有谁知道为什么self indexCount in the ForEach给出了错误Cannot use mutating getter on immutable value self is immutable错误 我可以提供aView w
  • 移动视口尺寸是否大于屏幕尺寸?

    我在谷歌上搜索了移动视口 发现它是一个虚拟窗口 大多数移动浏览器都在其中渲染页面 视口比屏幕宽 here https developer mozilla org en docs Mozilla Mobile Viewport meta ta
  • 如何使用 C++ 获取 Windows 中的应用程序数据路径?

    我查遍了互联网 似乎没有找到合适的解决方案 我希望能够在 C 中以编程方式获取路径 ALLUSERSPROFILE Application Data 资源管理器可以将其转换为真实路径 我可以在不依赖第三方代码的情况下做到这一点吗 Use S
  • 复制带有格式的 Notepad++ 文本?

    我正在使用 Notepad 来编写代码 如何复制 Notepad 中的代码及其格式以粘贴到 Microsoft Word 中 即语法突出显示等 这是当您选择要复制为 html 的文本时来自 notepad 的图像 and how the f
  • hasattr 被称为方法,但它看起来像函数[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在 Python 中 函数接受参数并可选择返回信息 functionname param1 param2 returnvalue functio