美文网首页
第九章 类

第九章 类

作者: Shinichi新一君 | 来源:发表于2017-02-06 22:53 被阅读10次

    9.1 创建和调用类

    class Restaurant(): #类名首字母须大写

        def __init__(self, restaurant_name, cuisine_type): #方法:这里前后两个空格;括号中包含若干形参,其中self必不可少且在最前;self是一个指向实例本身的引用,让实例能够访问类中的属性和方法.

            self.restaurant_name = restaurant_name

            self.cuisine_type = cuisine_type #属性:这里获取存储在形参中的值;以self为前缀

            self.xxx = 0 #这里是设置默认值

        def describe_restaurant(self): #由于不需要额外信息,因此只有一个形参self

            print('The restaurant name is ' + self.restaurant_name.title()

            + ' and its cuisine type is ' + self.cuisine_type.title() + ' .')

        def open(self):

            print(self.restaurant_name.title() + ' is open now.')

    restaurant = Restaurant('Hollywood', 'italy food') #根据类创建实例

    print(restaurant.restaurant_name) #这里访问属性(本质是访问self.restaurant_name)

    restaurant.describe_restaurant() #调用方法;这里的实例前缀不要忘记

    restaurant.open()

    9.2 使用类和实例

    9.2.1 修改属性的值

    1.直接修改

    restaurant.xxx = 3 #与默认属性名称对应即可

    2.通过方法修改、递增

    def update_attribute(self, yyy):

        self.xxx = yyy

        self.xxx += yyy

    9.3 继承

    如果要编写的类是另一个现成类的特殊版本,可使用继承.
    原有类称为父类,新类称为子类,
    子类还可以定义自己的属性和方法.

    9.3.1 子类的方法super().__init__()

    首先是父类的代码,必须包含在当前文件且在子类前面;

    class Yyy(Xxx):

        def __init__(self, ..., ..., ...):

            super().__init__(..., ..., ...)

    9.3.2 给子类定义属性和方法

    继承后可添加区分子类和父类所需的新属性和方法

    就在super().函数下面添加即可,语法为

        self.new_attribute =  #设置新属性及其初始值

    def new_function(self): #添加新方法

    9.3.3  重写父类的方法

    对于父类的方法,只要不符合子类模拟的实物特性,都可对其进行重写

    9.3.4 将实例用作属性

    将类的一部分作为一个独立的类提取出来.

    先定义新类的名字

    class New_class():

        def __init__(self, new_attribute):

        self.new_attribute = new_attribute 初始化属性

    然后在子类中super()函数后

    self.attribute_name = New_class()

    9.4 导入类

    python允许将类存储在模块中,然后在主程序中导入所需的模块

    9.4.1 导入单个类

    已有模块module.py中的类为Class

    创建另一文件

    from module import Class #注意这里没有空格,下一行顶格写

    9.4.2 在一个模块中存储多个类

    同一模块中的类之间存在某种相关性,可根据需要在一个模块中存储任意数量的类.

    9.4.3 在一个模块中导入多个类

    将多个类用逗号隔开即可

    9.4.4 导入整个模块

    import module

    9.4.5 导入所有类

    from module import *

    相关文章

      网友评论

          本文标题:第九章 类

          本文链接:https://www.haomeiwen.com/subject/vnffittx.html