class Dog():
'''一次模拟小狗的简单尝试''' #文档字符串,对这个类的功能进行描述
def __init__(self,name,age):
'''初始化属性:name和age'''
self.name = name
self.age = age
def sit(self):
'''模拟小狗被命令时,蹲下'''
print(self.name + ' is now sitting.')
def roll_voer(self):
'''模拟小狗被命令时,打滚'''
print(self.name + ' rolled voer.')
my_dog = Dog('小白',6)
print('小狗的名字是: ' + my_dog.name) #访问属性
print('小狗的年龄是: ' + str(my_dog.age)) #访问属性
#--------------------------------------------------------------------
my_dog.sit() #调用方法
my_dog.roll_voer() #调用方法
#----------------------------------------------------------------------
#创建多个实例
your_dog = Dog('小黄',8)
print(your_dog.name + ' ' + str(your_dog.age))
your_dog.sit() #调用方法
your_dog.roll_voer() #调用方法
#-------------------------------------------
her_dog = Dog('小花',6)
print(her_dog.name + ' ' + str(her_dog.age))
her_dog.sit() #调用方法
her_dog.roll_voer() #调用方法
=============================================================================
执行结果:
小狗的名字是: 小白
小狗的年龄是: 6
小白 is now sitting.
小白 rolled voer.
小黄 8
小黄 is now sitting.
小黄 rolled voer.
小花 6
小花 is now sitting.
小花 rolled voer.
========================================================================================
注意:
(一)python中,首字母大写的名称指的是类,这个类定义中括号是空的,因为我们要从空白创建这个类
(二)方法 _int_ :
这是一个特殊的方法,每当我们根据Dog类创建新实例时,python都会自动运行它。
方法 _int_ 定义了3个形参:self,name,age 。注意:self必不可少,必须位于其它形参的前面,
因为python调用 _int_ 这个方法来创建Dog实例时,将自动传入实参self
每个与类相关联的方法调用 都自动传递实参self。它是一个指向实例本身的引用,让实例能否访问类中的属性和方法。
PS:我们创建Dog实例时,python将调用Dog类的方法 _int_ ,我们将通过实参向Dog()传递名字和年龄;
self会自动传递,因此我们不必传递它。
每当我们根据Dog类创建实例时,都只需给最后两个形参(name,age)提供值。
(三)以self为前缀的变量 都可供给 类中的所有方法使用,我们还可以通过类的任何实例来访问这些变量。
self.name = name 获取存储在形参name中的值,并将其存储到变量name中,然后该变量被关联到前面创建的实例。
像这样可通过实例访问的变量,称为 属性。
(四)两个方法,不需要额外的信息,如name或者age;因此它们只有一个形参self。创建的实例能够访问这些方法。
(五)访问属性:要访问实例的属性,可以使用句点表示法;
(六)调用方法:根据Dog类创建实例后,可以使用句点表示法调用Dog类中定义的任何方法。