here I abstract the actual business
I try to create a class that has the following methods:
import types
class A:
def __init__(self,num):
self.num = num
self.add_prop(10) -sharp 10
def add_prop(self, n):
for i in range(n):
fun_name = "add_" + str(n) -sharp
def add_fun(self):
return self.num + i
setattr(self, fun_name, types.MethodType(add_fun, self)) -sharp
seems logically that the above code does what I want, and it does give class A
10 attributes of add_n
, but in fact these methods are the same and cannot return predetermined values on demand. For example, add_1
, we expect it to return self.num + 1
, but in fact it returns self.num + 10
, that is, the Mantissa of the loop 10 in
for i in range (10)
.
- so how should I write to avoid this situation, or is there any other better way to implement it?