我是编程新手,我想知道这两个类定义有什么区别?哪一个是更好更安全的定义? 带有实例变量的那个或带有构造函数方法的那个?
由于
class MyClass1:
def doAdd (self,val1=0,val2=0):
sum1=val1+val2
print("MyClass1")
print ("{0}+{1}={2}".format(val1,val2,sum1))
class MyClass2:
def __init__(self,val1=0,val2=0):
self.val1=val1
self.val2=val2
def doAdd(self):
sum2=self.val1+self.val2
print("MyClass2")
print("{0}+{1}={2}".format(self.val1,self.val2,sum2))
obj1=MyClass1()
obj1.doAdd(1,2)
obj2=MyClass2(1,2)
obj2.doAdd()
MyClass1
1+2=3
MyClass2
1+2=3
答案 0 :(得分:1)
您可能希望添加并在__init__()
方法中存储总和,以避免每次调用doAdd()
时重新计算。和@gragas说的一样,这种方法可以存储数据,以便以后在其他方法中使用。
您在这里没有使用任何面向对象的功能,所以它也可能只是一个常规功能。
def doAdd(val1=0, val2=0):
return val1 + val2
print(doAdd(1, 2))