gpt4 book ai didi

python - 创建对象而不调用类

转载 作者:太空狗 更新时间:2023-10-29 18:13:34 24 4
gpt4 key购买 nike

在 matlab 中,我可以通过执行以下操作来创建结构数组 (struct)。

person.name = 'Mike';
person.age = 25;
person.gender = 'male';

其中 person 在创建结构之前没有定义。当我尝试在 python 中执行此操作时,它给了我一个错误

name 'person' is not defined

在 python 中有类似的方法吗?谢谢

编辑:作为 python 的新手,我仍然在 matlab 中思考。我遇到的问题是我有一个函数需要多个输入(超过 40 个),所以我没有函数(input1,input2,...,input40),而是只有函数(input),其中输入由 input.1、input.2、..、input.40 组成。

最佳答案

在 Python 中,您可以向对象动态添加成员,但是 (1) 名称必须已经存在(必须已分配)并且 (2) 它必须绑定(bind)到某个类的实例。为此,您可以创建一个空类:

class Empty:
pass # empty statement otherwise the class declaration cannot succeed

构造它的实例并将其分配给您的变量

person = Empty()

然后添加你想要的任何数据

person.name = 'Mike'
person.age = 25
person.gender = 'male'

另一方面,如果您不需要“普通”类提供的附加功能,而只想以键=>值的方式存储一些数据,您可能应该只使用字典。

person={}
person['name']='Mike'
person['age']=25
person['gender']='male'

(请注意,至少在 Python 2.7 之前,这主要只是风格/句法上的差异,因为实例成员是根据字典在底层实现的)

作为一般准则,当您实例化以相同方式创建的多个对象时,您需要类(并且通常在类构造函数中完成对成员的分配;稍后添加成员通常会使代码难以理解),否则字典。

关于python - 创建对象而不调用类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8948777/

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