两种调用方法的方法

时间:2017-09-22 15:19:20

标签: python class

当我学习面向对象编程时,我发现了两种在类中拉取方法的方法。我想知道哪一个更好。

让我创建一个非常简单的狗类作为例子:

class Dog():
    def __init__(self, name):
        self.name = name

    def name_change(self, new_name):
        self.name = new_name

    def sit(self):
        print(self.name + ' is sitting')

my_dog = Dog('Jackie')
print('Dog name is ' + my_dog.name)

my_dog.name_change('Aaron')
print('Dog name is ' + my_dog.name)

Dog.name_change(my_dog, 'James')
print('Dog name is ' + my_dog.name)

my_dog.sit()
Dog.sit(my_dog)

您可以看到我可以同时使用两者来更改属性:

my_dog.name_change('Aaron') 
Dog.name_change(my_dog, 'James')

我也可以使用两者来拉取my_dog的方法:

my_dog.sit()
Dog.sit(my_dog)

作为初学者,我从教科书中看到的通常是第一种方式。

但不知怎的,我觉得第二种方式对我来说更容易理解,因为它从类名开始,缩小到类方法,然后使用我的实例(my_dog)作为self,然后使用其他需要时的参数。感觉非常有条理。

  • 所以,如果有人可以告诉我这两种方式是好还是坏?是吗 因为它看起来更简单?
  • 或者它真的没关系,我可以用任何我想要的方式吗?
  • 或者是没有人在做第二种方式,所以不要这样做?

0 个答案:

没有答案