Python 类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 类相关的知识,希望对你有一定的参考价值。

一、面向对象

(1) 对象:在 Python 中,一切皆对象,也就是说,变量也是一个对象,元组也是一个对象,函数也是一个对象,所有的东西都可以称为对象
(2) 面向对象与面向过程:面向过程实际上是分析出解决问题的一些步骤,然后把这些步骤一步一步地通过函数去实现,强调过程;而面向对象是把变量和函数放在一起,作为相互依存的整体,这个整体称为对象,简单来讲就是把变量和函数放在一起组成类,只是在类中把变量称为类的属性,把函数称为类的方法
(3) 注意:对象 ≠ 类 ,类是对事物的抽象,比如人类、球类,而对象是类的一个具体实例,比如足球、篮球,也就是说,类可以根据属性和方法进行抽象然后实例化出一个对象

二、面向对象的思想

(1) 封装:封装实质上就是类的定义,把需要的变量和函数封装在一起组成类
(2) 继承:继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等
(3) 多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果

#!/usr/bin/env python

class People(object):               # 定义类,object 是超级类,所有的类都必须继承这个类
    color = yellow                # 定义类的属性
    def think(self):                # 定义类的方法(self表示类本身)
        print "I am a thinker"

ren = People()                      # 通过类实例化出一个对象ren
print ren.color                     # 可以通过对象访问类的属性
ren.think()                         # 可以通过对象执行类的方法

 

三、python构造器:__init__

__init__ 用于类的初始化,也就是说,当实例化一个对象时,自动执行 __init__ 下面的属性和方法:

#!/usr/bin/env python

class People(object):
    color = yellow

    def __init__(self):
        self.color = black

ren = People()        # 这里实例化一个对象,那么就会执行__init__下的内容,则 color 的值变为 black
print ren.color       # 当对象去调用的时候,color 值为 black
print People.color    # 当类去调用的时候,color 值不变,还是 yellow
[[email protected] ~]# python 1.py 
black
yellow

 

四、类的继承

继承是相对两个类而言的父子关系,子类继承了父类的所有公有属性和方法,继承可以重用已经存在的方法和属性,减少代码的重复编写,Python 在类名后使用一对括号来表示继承关系,括号中的类即为父类,如 class Myclass(ParentClass) 表示 Myclass(子类) 继承了 ParentClass(父类) 的方法和属性

#!/usr/bin/python

class People(object):     
    color = yellow

    def think(self):
        print "I am a thinker"

class Chinese(People):    # 这里表示 Chinese 继承了 People
    pass

cn = Chinese()            # 因为 Chinese 继承了 People ,所以可以直接调用 People 里面的属性和方法
print cn.color
cn.think()

如果父类定义了 __init__ 方法,子类必须显式调用父类的 __init__ 方法:

#!/usr/bin/python

class People(object):
    color = yellow

    def __init__(self, c):
        print "Init...."

    def think(self):
        print "I am a thinker"

class Chinese(People):    
    def __init__(self):
        People.__init__(self,red)    # 显式调用父类的__init__方法

cn = Chinese()

 

 

 

 

 

 

     

 

以上是关于Python 类的主要内容,如果未能解决你的问题,请参考以下文章

如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用

python 有用的Python代码片段

Python 向 Postman 请求代码片段

python [代码片段]一些有趣的代码#sort

使用 Python 代码片段编写 LaTeX 文档

python 机器学习有用的代码片段