下面编写一个表示小狗的简单类Dog--它表示的不是特定的小狗,而是任何小狗。
对于大多数宠物狗,它们都有名字和年龄,大多数小狗还会蹲下和打滚,现在创建一个Dog类包含它们。这个类让python知道如何创建表示小狗的对象。编写这个类后,我们将使用它来创建表示特定小狗的实例。
9.1.1创建Dog类
"""根据Dog类创建的每个实例都将存储名字和年龄。我们赋予了每条小狗蹲下(sit())和打滚(roll_over())的能力""" """根据约定,在python中首字母大写的名称指的是类。""" 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()+"roll over!") """ 说明: 1.__innt__()为默认方法,每当根据Dog类创建新实例时,python都会自动运行它。 2.__innt__()中self形参必不可少,且必须位于其它形参前面。 因为在调用这个方法创建实例时,将自动传入实参self,每个与类相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性一和方法。 创建Dog类实例时,我们将通过实参向Dog类传递名字和年龄,self会自动传递,因此我们只需给量后峡谷人形参(name和age)提供值。 3.以self为前辍的变量都可供类中的所有方法使用,民可以通过类的任何实例来访问这些变量。如self.name=name获取形参name中的值, 并将其存储到变量name中。像这样可以通过实例来访问的变量称为属性。 """
9.1.2 根据类创建实例
可将类视为有关如何创建实例的说明。Dog类是一系列说明,让python知道中何创建表示特定小狗的实例。
下面来创建一个表示特定小狗的实例:
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()+"roll over!") #下面来创建一个表示特定小狗的实例 my_dog=Dog("willie",6) print("my dog‘s name is "+my_dog.name.title()+".") print("my dog is "+str(my_dog.age)+"years old.")
运行结果:
>>>
================== RESTART: D:/python学习/第9章 类/9.1/Dog实例.py ==================
my dog‘s name is Willie.
my dog is 6years old.
>>>
1.访问属性
要访问实例的属性,可使用句点表示法。如:my_dog.name 访问my_dog的属性name的值。
2.调用方法
根据Dog类创建实例后,就可以使用句点表示法来调用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()+"roll over!") """根据Dog类创建实例后,就可以使用句点表示法来调用Dog类中定义的任何方法 下面来创建一个实例让小狗蹲下和打滚 """ my_dog=Dog("willie",6) my_dog.sit() my_dog.roll_over()
运行结果及说明:
要调用方法,可指定实例的名称(这里是my_dog)和要调用的方法,并用句点分隔。
执行my_dog.sit()时,python在类Dog中查找方法sit()并运行其代码。
Willie按我们的命令做了: >>> ================== RESTART: D:/python学习/第9章 类/9.1/Dog实例2.py ================== Willieis now sitting Willieroll over! >>>
3. 创建多个实例
可按需求根据类创建任意数量的实例。下面再创建一个名为your_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()+"roll over!") """根据Dog类创建实例后,就可以使用句点表示法来调用Dog类中定义的任何方法 下面来创建两个实例my_dog蹲下和your_dog打滚 """ my_dog=Dog("willie",6) your_dog=Dog("luky",3) print("my dog‘s name is "+my_dog.name.title()+".") print("my dog is "+str(my_dog.age)+"years old.") my_dog.sit() print("\n\n") print("your dog‘s name is "+your_dog.name.title()+".") print("your dog is "+str(your_dog.age)+"years old.") your_dog.roll_over() 运行结果: >>> ================== RESTART: D:/python学习/第9章 类/9.1/Dog实例3.py ================== my dog‘s name is Willie. my dog is 6years old. Willieis now sitting your dog‘s name is Luky. your dog is 3years old. Lukyroll over! >>>
原文:https://www.cnblogs.com/ylzchs/p/14295765.html