当前位置: 首页 > 面试题库 >

如何在Python中动态访问类属性?

巫马山
2023-03-14
问题内容

假设我创建了一个类的实例,并想为其公共属性分配一些值。通常,这将是这样完成的:

class MyClass:
    def __init__(self):
        self.name = None
        self.text = None

myclass = MyClass()
myclass.name = 'My name'

但是,如果编写一个将类作为参数的函数,而我想动态地为该类的公共属性分配一些值,那就是通过变量和循环(不知道有多少个或被称为什么)。 )

显而易见的是:

myclass = MyClass()
myclass['name'] = "My name"

但这是行不通的。

有任何想法吗?


问题答案:
setattr(my_class_instance, 'attr_name', attr_value)


 类似资料:
  • 问题内容: 我有一个Python类,其属性名为:date1,date2,date3等。 在运行时,我有一个变量i,它是一个整数。 我想要做的是基于i的值在运行时访问适当的date属性。 例如, 如果i == 1,我想访问myobject.date1 如果i == 2,我想访问myobject.date2 我想为类而不是属性做类似的事情。 例如,我有一堆类:MyClass1,MyClass2,MyC

  • 问题内容: 如果我有以下python代码: 它抱怨 如何bar在方法中访问类/静态变量? 问题答案: 代替bar使用或。分配给将创建一个静态变量,分配给将创建一个实例变量。

  • 问题内容: 如果我有以下python代码: 它抱怨 如何在方法中访问类/静态变量? 问题答案: 代替使用或。分配给将创建一个静态变量,分配给将创建一个实例变量。

  • 问题内容: 目标是创建一个行为类似db结果集的模拟类。 因此,例如,如果数据库查询使用表达式返回,那么我想看看: 刚开始我以为我可以这样做: 但返回一个属性对象。 用替换该行根本没有用。 那么在运行时创建实例属性的正确方法是什么? 问题答案: 我想我应该扩大这个答案,因为我年纪大一些并且比较聪明,并且知道发生了什么事。迟到总比不到好。 你可以动态地向类添加属性。但这很重要:你必须将其添加到类中。

  • 问题内容: 我正在尝试从JavaScript中的JSON过滤数据。 我定义一个变量。我想要等于(不等于)的属性。到目前为止,我还没有找到一种方法。 其他所有内容均正常运行,因为当我将其更改为特定条目(例如,item.date)时,它可以正常工作。我找不到正确的语法。 问题答案: 试试看,也可以通过这种方式访问​​javascript对象。

  • 问题内容: 如果要动态使用全局函数和变量,可以使用: 是否可以对本地范围内的变量执行相同的操作? 这段代码可以正常工作,但是目前使用eval,我正在尝试其他方法。 问题答案: 不,就像新月说的那样。在下面,您可以找到一个示例,该示例说明如何在不使用eval的情况下但使用内部私有对象进行实施。