2022年 11月 9日

python 类的作用

Dog 类

class Dog():
    “””一次模拟小狗的简单尝试”””
    
    def __init__(self,name,age):
        “””初始化属性name和age”””
        self.name = name
        self.age = age
        
    def sit(self):
        “””模拟小狗被命令时蹲下”””
        print(self.name.title()+” is now sitting.”)
        
    def roll_over(self):
        “””模拟小狗被命令时打滚”””
        print(self.name.title() + “rolled over!”)

其中的精要点拨,

我们定义了一个名为Dog的类,根据约定,在Python中,首字母大写的名称指的是类。

这个类的定义中的括号是空的,因为我们要从空白创建这个类。

“””xxx”””这里为我编写的一个文档字符串,用来对这个类的功能作一些简要的描述。

__init___()是一个特殊的方法,每当你根据Dog类创建新的实例的时候,Python都会自动运行它。在这个方法中,init的前面和后面都有两个下划线,这是一种约定哈。(可以不用理会:目的在于避免Python默认方法与普通方法发生名称上的冲突。)

我们将方法__init__()定义成了包含三个形参:self、name、age.

在这个方法中,self必不可少,还必须要位于其他形参的前面。(self会自动传递,因此我们不需要传递它。每当我们根据Dog类创建实例的时候,都只需给最后的两个形参比如说这里的(name和age)提供值即可。

至于self.name = name和self.age = age,

这里的两个变量都有前缀self,

self.name = name用来获取存储在形参name的值,并将其赋到变量name中,然后该变量被关联到当前创建的实例当中去。

self.age = age用来获取存储在形参age的值,并将其赋到变量age中,然后该变量被关联到当前创建的实例当中去。

小结:self.xxx = xxx 用来获取存储在形参xxx的值,并将其赋到变量xxx中去,然后该变量被关联到当前创建的实例当中去。

Dog类还定义了另外两种方法:sit()和roll_over().

因为这些方法当中不需要额外的信息比如说名字或者是年龄等等,所以它们只有一个形参self。

即sit(self)和roll_over(self)