首页 > 解决方案 > 类中的方法如何访问类常量变量?

问题描述

我很困惑如何在方法中访问类变量。例如,下面的 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

标签: python

解决方案


是的,使用self. COURSES没问题。Python有所谓的“数据继承”。当您编写self. COURSES它时,它会查找COURSESin self.__dict__。如果在此处未找到该属性,self.__class__.__dict__则会搜索 - 并找到您的类属性。如果未找到该属性,则__dict__搜索类的父类。

另见:https ://www.python-course.eu/python3_class_and_instance_attributes.php


推荐阅读