python - 类中的方法如何访问类常量变量?
问题描述
我很困惑如何在方法中访问类变量。例如,下面的 compare 方法可以通过哪些方式使用类变量 COURSES?我通过在调用 COURSES (self.COURSES.items()) 之前添加 self 来使其工作,但这是正确的吗?我觉得这是不好的做法,我错过了一些东西,但我似乎找不到答案。谢谢大家。
class Example:
COURSES = {
"Python Basics": {"Python", "functions", "variables",
"booleans", "integers", "floats",
"arrays", "strings", "exceptions",
"conditions", "input", "loops"},
"Java Basics": {"Java", "strings", "variables",
"input", "exceptions", "integers",
}
def compare(self, arg):
intersection_list = []
for key, value in COURSES.items():
if value & arg:
intersection_list.append(key)
return intersection_list
解决方案
是的,使用self. COURSES
没问题。Python有所谓的“数据继承”。当您编写self. COURSES
它时,它会查找COURSES
in self.__dict__
。如果在此处未找到该属性,self.__class__.__dict__
则会搜索 - 并找到您的类属性。如果未找到该属性,则__dict__
搜索类的父类。
另见:https ://www.python-course.eu/python3_class_and_instance_attributes.php
推荐阅读
- ssis - 在 ssis 的审计/错误处理中动态选择源表名和任务名
- scala - 未来的内线后卫
- javascript - 在 Dynamics NAV 中集成 CKEditor
- angular - 在 Angular 4 中使用浏览器 window.sessionStorage 或 ngx-webstorage 等 ng 库是否安全
- android - 将 json 中的 ID 和名称与 itemclicklistener 关联?
- android - 在另一个 recyclerView 中添加 recyclerView
- wordpress - Bitnami / EC2 WordPress 插件的权限
- html - 袖口列表内的袖口列表
- android - 单击一个 recyclerView 项目将我带到活动的顶部
- sql-server - 在执行过程中中断与 SQL Server 的连接