Python两个类定义之间的区别

时间:2015-07-14 01:43:18

标签: python class variables constructor instance

我是编程新手,我想知道这两个类定义有什么区别?哪一个是更好更安全的定义? 带有实例变量的那个或带有构造函数方法的那个?

由于

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

1 个答案:

答案 0 :(得分:1)

MyClass1的

您可能希望添加并在__init__()方法中存储总和,以避免每次调用doAdd()时重新计算。和@gragas说的一样,这种方法可以存储数据,以便以后在其他方法中使用。

MyClass2

您在这里没有使用任何面向对象的功能,所以它也可能只是一个常规功能。

def doAdd(val1=0, val2=0):
    return val1 + val2

print(doAdd(1, 2))