八、类
1.创建和使用类
1.知识点:
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!")
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.")
一、 创建一个Dog类
(1)首字母大写的名称称为类
(2)方法 init() 每次根据Dog类创建实例时,都会自动运行此方法,此方法为python默认的方法。方法的开始和结束的下划线是一种约定,意在避免python默认的方法与其他方法冲突。
(3) init(self, name,age) 第一个参数self在python创建实例调用__init__()方法时,自动传入self参数, 每个与类相关联的方法调用都自动传递实参self ,它是一个指向实例本身 的引用,让实例能够访问类中的属性和方法。
(4) 我们创建Dog 实例时,Python将调用Dog 类的方法__init__() 。我们将通过实参向Dog() 传递名字和年龄;self 会自动传递,每当我们根据Dog 类创建实例时,都只需给最后两个形参(name 和age )提供值。
(5) self.name = name 以self 为前缀的变量都可供类中的所有方法使用,获取存储在形参name 中的值,并将其存储到变量name 中。
(6)定义的蹲下和打滚两个方法,由于不需要其他参数,因此只有self这一个参数,意在后面创建的实例能够访问这些方法
二、根据类创建实例
(1)创建一个实例
(2)Python使用实参’willie’ 和’6’ 调用Dog 类 中的方法__init__() 。方法__init__() 创建一个表示特定小狗的示例,
(3) 并使用我们提供的值来设置属性name 和age
(4)方法__init__() 并未显式地包含return 语句, 但Python自动返回一个表示这条小狗的实例。
(5)访问属性 :my_dog.name 先找实例 my_dog 再查找与此关联的属性name
(6)调用方法 : my_dog.sit()
2.例子
例1:创建一个名为Restaurant 的类,其方法__init__() 设置两个属性:restaurant_name 和cuisine_type 。创建一个名 为describe_restaurant() 的方法和一个名为open_restaurant() 的方法,其中前者打印前述两项信息,而后者打印一条消息,指出餐馆正在营业。
class Restraurant():
'''定义餐馆'''
def __init__(self,restaurant_name,cuisine_type):
""" 初始化属性restaurant_name,cuisine_type"""
self.restaurant_name1=restaurant_name #形参restaurant_name的值传入到变量restaurant_name1,此变量类中所有方法都可用
self.cuisine_type1=cuisine_type
def describe_restaurant(self):
'''描述餐馆的类型'''
print("此餐馆的名字为:"&#