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.如果您能以更精确的方式对其进行重新编辑,请随意编辑该问题.
定义类属性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)