gpt4 book ai didi

python - Python 中的动态对象类似于 AS3

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

在 AS3 中我们有一个关键字来定义动态对象:

dynamic class DynamicClass { ... }

因此,我们可以在运行时添加或删除属性。

var dynamicInstance:DynamicClass = new DynamicClass();
// add a property like this...
dynamicInstance.newProperty = 'newValue';
// or this...
dynamicInstance['otherProperty'] = 'otherValue';

我可以访问甚至遍历整个动态属性集合:

for (var name:String in dynamicInstance)
trace(name, '=', dynamicInstance[name])
// output:
// newProperty = newValue
// otherProperty = otherValue

我也可以删除那些属性:

// and delete a property like this...
delete dynamicInstance.newProperty;
// or this...
delete dynamicInstance['otherProperty'];

这在 Python 中如何完成?

最佳答案

python 中的所有类都是动态的。你可以像这样访问它们

class a:
pass

>>> a.name="rob"
>>> a.age=45
>>> dir(a)
['__class__', '__delattr__', '__dict__', '__doc__', '__eq__', '__format__', '__ge__',
'__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__',
'__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__',
'__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'age', 'name']

>>> a.age
45
>>> a.name
'rob'

>>> setattr(a,"job","fischer")
>>> getattr(a,"name")
'rob'

如果您想更改类的所有实例,您可以轻松编写一个 for 循环,忽略以 __ 开头的实例

关于python - Python 中的动态对象类似于 AS3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5488046/

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