gpt4 book ai didi

Python:连接两个字符串以从类中获取变量

转载 作者:太空宇宙 更新时间:2023-11-04 10:39:18 24 4
gpt4 key购买 nike

我有一个 Python 类,有一些变量。类的定义如下:

class student:
def __init__(self,name,rollno,DOB,branch):
self.name=name
self.rollno=rollno
self.DOB=DOB
self.branch=branch
self.books=[]
self.fines=[]

我正在为学生添加新属性,并且还需要存储相应的值(以备将来使用)。这是使用 setattr 方法完成的,并且工作正常。

代码片段:

setattr(student,"date_of_join",date())

现在我正在处理这个问题,如果用户添加了一个新属性(例如,“date_of_join”),那么我首先会更新一个列表 (studattr)包含 ["name","rollno",DOB","branch","books","fines"] 以更新属性列表。这意味着更新后的列表还将具有“date_of_join "现在附加到它。

现在如果我想访问学生实例的这个属性列表,那么我该怎么做呢? (由于记录是动态更新的,让我们假设我必须访问 x.date_of_join,那么我该如何连接这两个字符串?有没有类似于 python 的 os.path.join,或者更确切地说是 linux 的系统调用,(合并两个字符串)?)

问题:

for attribute in studattr:
print attribute,x.attribute

{ This throws an Exception since the instance x has no variable or method named "attribute")

PS:我尝试使用 inspect、inspect.getmembers(x) 以及 dirs(x)、vars(x) ,(在 stackoverflow 上提到过),但它只给了我主类主体中的变量/方法列表而不是在 init 中。

最佳答案

使用getattr()访问动态属性:

for attr in student.studattr:
print attr, getattr(student, attr)

或者使用 vars() 会给你一个学生当前属性的字典:

for attr, value in vars(student).iteritems():
print attr, value

关于Python:连接两个字符串以从类中获取变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21678419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com