Python:自动对象生成和命名

Cos*_*eal 0 python automation class object increment

我们有一个内部有一些数学函数的类

class MyObjects(object):
    q=1      #could be any number
    def f(x,y):
        return q*y+x    #could be any mathematical function
Run Code Online (Sandbox Code Playgroud)

比方说,我们要创建100个指定像新的对象object_1,object_2... object_100 这个类的,他们都必须有一个变量q定义,但对每个对象的定义q_1,q_2...... q_100但我们希望每一个对象被创建递增时间q的价值if q=1: q_1=q+1 q_2=q_1+1等等.正如之前显示的所有对象必须使用命名为每个对象类的类的F(X,Y)的功能f_1,f_2... f_100.生成的对象的数量将由用户设置input(),这就是我想自动执行此过程的原因,通过在代码中添加类似于100个对象的"手动"来做这非常麻烦.那么我可以自动化这个程序吗?Python begginer,monty python退伍军人lol.如果您能以更精确的方式对其进行重新编辑,请随意编辑该问题.

Ash*_*ary 5

定义类属性q和实例属性q.每次创建一个新实例时,MyObjects.q都会递增,并且将增加该值self.q

class MyObjects(object):
    q=0
    def __init__(self):
       MyObjects.q+=1
       self.q=MyObjects.q

    def f(self,x,y):
        return self.q*y+x
inp=input("Enter number of objects: ")
dic={}
for x in range(1,inp+1):
    dic[x]=MyObjects()
Run Code Online (Sandbox Code Playgroud)

输出:

>>> dic[1].q
1
>>> dic[2].q
2
>>> dic[3].q
3
>>> dic[1].f(2,5)
7
>>> dic[2].f(2,5)
12
>>> dic[3].f(2,5)
17
Run Code Online (Sandbox Code Playgroud)