首页 > 解决方案 > 如何从不同的方法(类外)访问类的值

问题描述

我有这种和平的代码,我试图在一个类中打印出一个字典,我如何从不同的方法访问值并指定要打印的值

class Student:

    student_instance_dict            = {}

    def __init__(self, student):


        self.name = None 
        self.phoneNumber = 0


students = ['Mike', 'Dany']
for student in students:
    instance = Student(student)
    Student.student_instance_dict[student] = instance


    print (Student.student_instance_dict[student].name)#this prints out without any problems

def printUpdates(x):
    print (Student.student_instance_dict[student].x)

name = 'name'
printUpdates(name) 

las 行返回 AttributeError: 'Student' object has no attribute 'x'

标签: pythonclassdictionary

解决方案


Student.student_instance_dict[student].x将检查对象Student.student_instance_dict[student]是否有一个名为 的属性x,而您的对象没有该属性。看起来您要做的是创建一个函数,该函数将获取名称作为字符串传入的属性的值。为此,请使用getattr()

def printUpdates(x):
    print(getattr(Student.student_instance_dict[student], x))

推荐阅读