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)