Python 从类中的另一个函数调用一个函数

2023-12-13

我正在尝试学习 python,但很难理解为什么这个类会抛出错误NameError: name 'self' is not defined.我已经关注了如何在类中调用函数?并添加了self,但这没有帮助。这是代码,谁能指出原因。

class Back(object):    

    def square(self,x):
        y = x * x
        return y


    def main():
        self.square(3)


    if __name__ == "__main__":
    main()

我用它来称呼它python square.py


你忘了把self在方法签名中main()。它应该看起来像这样

    def main(self):
        self.square(3)

如果没有那个,self实际上没有在你的方法的范围内定义,所以Python会抱怨。

编辑:也,作为Some programmer dude提到,您的代码永远不会创建该类的实例,只是执行 main。您的缩进也存在问题(可能是复制粘贴错误)。

试试这个:

class Back(object):    
    def square(self,x):
        y = x * x
        return y

def main():
    back = Back()
    print(back.square(3))


if __name__ == "__main__":
    main()

注意如何main是在根级别定义的(它不像square)。这不是课堂的一部分,也不需要self。你可以把它作为一个方法Back像这样再次上课:

class Back(object):    
    def square(self,x):
        y = x * x
        return y

    def main(self):
        print(self.square(3))


if __name__ == "__main__":
    back = Back()
    back.main()

好吧,最后一个,我承认这样做确实没有意义。但我只是想说明Python中函数和方法之间的范围和区别(考虑到这个问题,我认为这个逻辑可能对OP有更多帮助)。

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

Python 从类中的另一个函数调用一个函数 的相关文章

随机推荐

  • MongoDB 字段名称中不允许使用哪些字符?

    我当然明白了 和 SPACE 是不允许的 还有其他禁用字符吗 您可以在字段名称中使用任何不属于的 UTF8 字符 特殊 包含 或以 开头 https jira mongodb org browse SERVER 3229 https sta
  • 注入非角度 JS 库

    在我们的项目中 我们使用 NPM 和 Browserify 进行第三方依赖管理 它与 AngularJS 结合使用效果很好 感谢 CommonJS 模块 以下代码显示了依赖结构 它与 Angular 的依赖注入配合得很好 function
  • 如何使用末尾带有 # 的 Uri.parse()

    我尝试使用 GSM 代码通过 Android 应用程序转接电话 例如 如果我致电 21 otherNumber 我所有的电话都将转接至其他号码 My code Uri transfert Uri parse tel 21 numero In
  • C++ eof() 问题 - 永远不会返回 true?

    所以我正在尝试读取这个文件 一切看起来应该可以工作 但在运行时程序超时并停止工作 我必须关闭它 到底是怎么回事 我怀疑 oef 测试永远不会返回 true 并且它会不断在文件中查找更多内容 我没有在文本文件中拖动空行 我疯狂地尝试调试这个
  • 在 Windows 中找不到命令 php

    我已经在 Windows 7 中安装了 xampp 服务器 我已经检查了浏览器的工作情况 但我正在尝试运行 php v 命令提示符 我收到以下错误消息 php is not recognized as an internal or exte
  • 使用 Laravel 5.8 / Cashier / Stripe 设置订阅时遇到问题

    我按照这个教程一步步操作 https appdividend com 2018 12 05 laravel stripe payment gateway integration tutorial with example 然而 当我去测试它
  • 在文件中查找字符串的最快方法

    我有一个不超过 10KB 的日志文件 文件大小最大可达 2 MB 我想查找文件中是否至少出现一组这些字符串 这些字符串将位于不同的行 例如 行动 输入 结果 我至少需要知道文件中是否存在上述一组 我已经做了大约 100 次测试 每次日志都不
  • PHP 正则表达式在冒号之前转换文本以进行链接

    我需要找到第一次出现的冒号 并获取之前的完整字符串并将其附加到链接中 e g username twitter nice site RT www google com visited 需要转换为 a href http twitter co
  • 用于 Web 开发的 iOS Touch ID

    我目前正在尝试找到一种方法来构建响应式网站 但是一旦网站在 iOS 设备上加载 我想使用新的 iOS Touch ID api 来允许会员登录 我知道当然可以使用 Native 以及 Cordova 来做这样的事情 http cordova
  • 在 pagerAdapter 中的片段之间发送数据

    您好 我正在尝试在两个片段之间发送数据 armarFragment 到 cocinaFragment 但我不知道该怎么做 因为两者都在同一个 Activity tabsActivity 中 该 Activity 实现了 pagerAdapt
  • 位置之前的第一个索引

    我有一个字符串和该字符串中的索引 并且想要获取该索引之前的子字符串的第一个位置 例如 在字符串中 this is a test string that contains other string for testing 是否有一个函数 给定
  • Visual Basic .NET 中的 C 样式指针

    我研究 Visual Basic NET 中的 C 风格指针有一段时间了 我遇到过http support microsoft com kb 199 824 wa wsignin1 0但我不知道这是否正确或如何应用 我已经使用 c 中的程序
  • Angularjs 与 html5Mode 的正常链接

    我正在 html 5 模式下使用 angularjs 它似乎控制了页面上的所有 href 但是 如果我想要链接到应用程序同一域中但实际上不在应用程序中的某些内容 该怎么办 一个例子是 pdf If i do a href pdfurl An
  • 如何使用 Google 地图将地址地理编码为纬度/经度

    我希望能够在谷歌地图上绘制几家公司 并了解我需要对这些公司进行地理编码 我还在地图上的多个标记下方提供了代码 如何对多个公司地址进行地理编码 使用以下地址作为第一个示例 并将其合并到我当前的代码中 我真的需要有人的帮助 因为我无法理解 Go
  • 重构代码以避免反模式

    我有一个 BusinessLayer 项目 其中包含以下代码 域对象是FixedBankAccount 它实现了IBankAccount 存储库被制作为域对象的公共属性 并被制作为接口成员 如何重构它以使存储库不再是接口成员 域对象 Fix
  • 此 C# FluentNHibernate 组件映射的等效 VB.NET 代码是什么?

    我是一名 C 程序员 只能编写 VB NET 代码 在为我当前的客户进一步探索 NHibernate 时 我遇到了 FluentNHibernate 我发现它非常有吸引力 但现在 我想知道如何将组件映射的 C 代码 翻译 为 VB NET
  • c# - 以编程方式将pdf转换为word [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 有谁知道以编程方式将 PD
  • 如何为带有缩略图的纯 CSS/HTML 滑块创建标题,无需 java/jquery

    我正在尝试创建一个滑块 其中包含用于导航的图像缩略图 我还想为每张幻灯片创建一个标题 使其随特定幻灯片一起出现和消失 这就是我现在所拥有的 http jsfiddle net yb02jzbq 源自http thecodeplayer co
  • iOS获取特定的UITableViewCell

    我有一个UIButton在一个习惯中UITableViewCell 单击此按钮会触发事件 myButton addTarget self action selector buttonClicked forControlEvents UICo
  • Python 从类中的另一个函数调用一个函数

    我正在尝试学习 python 但很难理解为什么这个类会抛出错误NameError name self is not defined 我已经关注了如何在类中调用函数 并添加了self 但这没有帮助 这是代码 谁能指出原因 class Back