python - 如何从不同的方法(类外)访问类的值
问题描述
我有这种和平的代码,我试图在一个类中打印出一个字典,我如何从不同的方法访问值并指定要打印的值
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'
解决方案
Student.student_instance_dict[student].x
将检查对象Student.student_instance_dict[student]
是否有一个名为 的属性x
,而您的对象没有该属性。看起来您要做的是创建一个函数,该函数将获取名称作为字符串传入的属性的值。为此,请使用getattr()
:
def printUpdates(x):
print(getattr(Student.student_instance_dict[student], x))
推荐阅读
- swift - 通过 UIDocumentPickerViewController 访问 Google Drive 中的 URL
- solidity - 错误:返回错误:gas 资金不足 * 价格 + Object.ErrorResponse 处的值
- java - 运行批处理文件时出现 java.lang.InterruptedException
- pip - 通过 setup.py 而不是通过 pip 安装时出现 UnknownExtra 错误
- java - 我在 Spring 快速入门中的尝试有什么问题?
- javascript - 什么是 Service Worker 的 URL.createObjectURL 的模拟
- php - 使用 simplexml 修改从 rss 文件中提取的数据
- android - 有没有办法发送 IP 摄像机的本地 RTSP 流并从 android 应用程序访问它?
- python - 在Python中逐位比较2个数字(16位)的最有效方法是什么?
- android - Flutter app apk 在手机上无法正常运行,但在模拟器上运行良好