从本章开始,我们开始使用pycharm作为开发环境,具体配置过程可以参见如下链接:

类的定义和使用

作为一个好公民,要积极践行垃圾分类(你是什么垃圾?:p),垃圾分类是将垃圾按照一定的标准分开存储、投放和搬运,分类的好处在于能将具有共同特点的事物统一处理。python中有个概念叫做类,也是将现实中具体的一类东西,抽象出一些共性的东西,进而提高代码的复用性和可读性。

话不多说,首先看个例子:

class Website():                                                         #1 定义类
    '''info about website'''                                           #2 类说明
    def __init__(self, domain_name):                                     #3 初始化函数
        self.domain_name = domain_name                                   #4 类变量初始化
    
    def publish(self):                                                   #5 定义publish函数
        print(self.domain_name + " published docsify tutorials.")
    
    def focus(self):                                                     #6 定义focus函数
        print(self.domain_name + " focuses on machine vision tutorials.")
my_website = Website("www.cvtutorials.com")                              #7 实例化
my_website.publish()                                                     #8 函数调用
my_website.focus()                                                       #9 函数调用

在1处,定义了一个Website类,类名我们通常是用大写字母开头,如果是多个单词,可以每个首字母大写,例如BaseDetection。在2处,我们用三引号对类进行一个简单的说明,这行字符串也叫文档字符串。在3处,用__init__函数对类进行初始化,初始化的时候需要给定一个域名作为参数。在4处,将参数中的变量赋值给类变量,这样方便其他函数使用。在5处,定义了一个publish函数,表示网站已经完成的教程,在6处,定义了一个focus函数,说明网站的聚焦领域。代码运行结果如下所示:

python 定义了类属性怎么调用 python定义类有什么用_python 定义了类属性怎么调用

继承

类的继承可以方便代码的复用,通过继承可以创建新类,新类叫做子类,被继承的类,叫做基类(鸡肋?:p)。

假如现在我们有一个新的需求,这个网站不再聚焦于机器视觉教程领域,转而聚焦于混合现实领域,我们将上面的Website作为一个基类,然后利用这个基类快速创建一个新类,代码如下:

class MyWebsite(Website):
    '''website fouces on Mixed Reality'''
    def __init__(self, domain_name):
        super().__init__(domain_name)
    
    def focus(self):
        print(self.domain_name + " focuses on Mixed Reality.")
mr_website = MyWebsite("www.cvtutorials.com")
mr_website.publish()
mr_website.focus()

python 定义了类属性怎么调用 python定义类有什么用_python_02