微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Python的类中使用类变量的名称令人费解

如何解决在Python的类中使用类变量的名称令人费解

我是面向对象编程的新手,并且我有以下关于类变量的问题: 我想使用一个亵渎过滤器,该类具有Profanity类,并且我希望在[{1}}方法中传递一个成绩单文件一个单词表文件作为参数。 (请参阅下面的完整代码)。

结果对象的定义应如下:__init__,其中p = Profanity("sample_transcript.txt",eng)代表英语,并且该语言参数可以用其他语言参数替换,例如德语的eng等。 )。为此,我在deu命令的正下方定义了类变量eng = "/home/user/sw_filter/wordlists/google_profanity_wordlist_eng.txt"deu = "/home/user/sw_filter/wordlists/profanity_wordlist_deu.txt"

我认为这些类变量在该类的所有对象之间共享,但是在运行代码时出现错误class。当我将语言文件路径设置为全局变量时,它可以工作,但我希望将它们存储在类中。有什么办法吗?我究竟做错了什么?我真的很感谢我能得到的任何帮助。

非常感谢您!

NameError: name 'eng' is not defined

解决方法

在您的代码中,问题出在这一行:

True

在创建对象时,您传递的第二个参数未在该域中定义,而是在类中定义为类属性。 正如我们所知,类属性通常对于类的所有实例都是通用的,并且可以通过实例或类名访问。

所以你应该做的就是像这样改变上面提到的行:

p = Profanity("sample_transcript.txt",eng)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?