码迷,mamicode.com
首页 > 编程语言 > 详细

Python 类

时间:2017-11-06 11:15:10      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:重用   公有   定义   host   作用   事物   需要   bsp   重复   

一、面向对象

(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
[root@localhost ~]# 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 类

标签:重用   公有   定义   host   作用   事物   需要   bsp   重复   

原文地址:http://www.cnblogs.com/pzk7788/p/7791737.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!