`

Python高级编程---面向对象

阅读更多
#!/usr/bin/python
#-*- coding:utf-8 -*-

'''
Created on 2016年6月24日

@author: Administrator
'''


'''
Python面向对象编程
http://www.runoob.com/python/python-object.html
'''


class Employee:
    empCount = 0
   
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary
        Employee.empCount +=1
   
    def displayCount(self):
        print "Total Employee %d" % Employee.empCount

    def displayEmployee(self):
        print "Name:", self.name, ", Salary:", self.salary



class Point:
    def __init__(self, x =0 ,y = 0):
        self.x = x
        self.y = y
    def __del__(self):
        class_name = self.__class__.__name__
        print class_name, "销毁"


class Parent:     #定义父类
    parentAttr = 100
    def __init__(self):
        print "调用父类构造函数"
   
    def parentMethod(self):
        print "调用父类方法"

    def setAttr(self,attr):
        Parent.parentAttr = attr
   
    def getAttr(self):
        print "父类属性:", Parent.parentAttr
       

class Child(Parent):  #定义子类
    parentAttr = 200
    def __init__(self):
        print "调用子类构造方法"
   
    def childMethod(self):
        print "调用子类方法"

    #方法重写
    def getAttr(self):
        print "子类属性:", Child.parentAttr


#访问对象
def accessObject():
    emp1 = Employee("Zara", 2000)
    emp2 = Employee("Manni", 5000)
       
    print Employee.empCount
   
   
    emp1.displayEmployee()
    emp1.age = 7
    print emp1.age
   
    emp1.age = 9
    print emp1.age
   
    del emp1.age
   
   
    emp2.displayEmployee()
   
    #访问对象的属性
    print getattr(emp1, 'name')   #没有则抛出异常
   
    #检查是否存在一个属性
    print hasattr(emp1, 'name')   #没有则返回False ,有则返回True
   
    #设置属性
    setattr(emp1, 'name', 'zhangsan')
    emp1.displayEmployee()
   
    #删除属性
    emp2.age = 9
    delattr(emp2, 'age')  #如果删除一个不存在的属性,则抛出异常



#类的属性和方法
#类的私有属性:__private_attrs,  两个下划线开头,声明该属性为私有

#类的方法
#类的私有方法: __private_method , 两个下划线开头,声明为该方法为私有方法

class JustCounter:
    __secretCount = 0    #私有变量
    publicCount = 0      #公开变量
   
    def count(self):
        self.__secretCount += 1
        self.publicCount += 1
        print self.__secretCount
   



#Python内置属性
def printInnerAttribute():
    #__dict__:类的属性
    print "Employee.__dict__:", Employee.__dict__
   
    #__doc__:类的文档字符串
    print "Employy.__doc__:", Employee.__doc__
   
    #__name__:类名
    print "Employee.__doc__:", Employee.__name__
   
    #__module__:类定义所在的模块
    print "Employee.__module__", Employee.__module__
   
    #__bases__:类的所有父类构成元素
    print "Employee.__bases__:", Employee.__bases__





#Python对象销毁
def destoryObject():
    pt1 = Point()
    pt2 = pt1
    pt3 = pt1
   
    print id(pt1), id(pt2), id(pt3)  #打印对象的ID
    #40895560 40895560 40895560
   
    del pt1
    del pt2
    del pt3


#类的继承
def extendObject():
    c = Child()
    c.childMethod()
    c.parentMethod()
    c.setAttr(200)
    c.getAttr()

    #判断一个类是否是另一个类的子类或者子孙类
    print issubclass(Child, Parent)
   
    #判断一个对象是否是一个类或者子类的实力
    print isinstance(c, Child)
   


#私有变量 和 私有方法
def privateMethod():
    counter = JustCounter()  
    counter.count()
    counter.count()
   
    print counter.publicCount
    #print counter.__secretCount   不能通过实例来访问私有变量
   
    #可以通过 对象._类名__私有属性   的方式来访问私有属性
    print counter._JustCounter__secretCount
   


if __name__ == '__main__':
    #访问对象
    #accessObject()
   
    #访问内部属性
    #printInnerAttribute()
   
    #销毁对象
    #destoryObject()

    #类的继承
    #extendObject()
   
    #私有变量和私有方法
    privateMethod()









                          -------2016-06-25 0:20
                          @modaokeng.yongtaixincun.baiyunqu.guangzhoushi.guangdongsheng


















分享到:
评论

相关推荐

    python-3.12.0-docs-pdf-a4.zip

    4. **面向对象编程**:Python是面向对象的语言,文档会解释类、对象、继承、多态等概念,并给出实际示例。 5. **模块和包**:Python的模块化设计使得代码组织有序,包的使用则可以更好地管理和重用代码。文档将指导...

    python-3.8.10-amd64.zip

    Python 是一种高级、解释型、交互式和面向对象的脚本语言。它的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用花括号或关键字)。Python 提供了动态类型系统,支持多种编程范式,...

    python核心编程-第二版

    面向对象编程是Python的一大特色,书中对此进行了深入讨论。讲解了类的定义、对象的创建与销毁,继承、多态等面向对象概念,以及装饰器、上下文管理器等高级特性。此外,还涉及了Python中的内置类型如set的实现原理...

    python程序设计基础-PPT课件;自己授课整理的ppt

    python程序设计-第一章-基础知识.pptx" python程序设计-第二章-判断语句与循环语句 python程序设计-第三章-字符串、列表、元组与字典.pptx" ...python程序设计-第八章-面向对象-高级 python程序设计-Pycharm使用技巧

    Python-100-Days (附源码).zip

    1. **Python开发语言**: Python是一种高级编程语言,以其简洁明了的语法和强大的功能而受到全球开发者喜爱。Python适用于各种应用领域,包括Web开发、数据分析、机器学习、网络编程等。在本教程中,学习者将从基础...

    Python-100-Days-master.zip

    4. **面向对象编程**:Python是一门面向对象的语言,理解类和对象的概念、继承、封装和多态是进阶的关键。此外,还会学习如何设计和实现模块化的代码。 5. **文件操作**:学习读写文件、处理异常、文件遍历等,这...

    Python-100-Days5.22版本.pdf

    Python是一种高级编程语言,由Guido van Rossum在1989年圣诞节期间开始编写。其第一个编译器兼解释器在1991年2月诞生,使用C语言实现,并支持调用C语言的库函数。Python 1.0于1994年1月正式发布,而Python 2.0在2000...

    python-3.6.7-docs-pdf-a4

    Python是一种高级编程语言,以其易读性、简洁的语法和丰富的库生态系统而闻名。3.6.7版包含了自3.6系列以来的所有更新和改进,包括性能优化、新特性和错误修复。文档中的主要知识点包括: 1. **基础语法**:涵盖了...

    Python 3面向对象编程

    《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念和原则。, 《Python 3面向对象编程》不是Python 的入门书籍,适合...

    python-3.7.3-docs-pdf-a4.zip

    Python,作为一款高级编程语言,以其简洁明了的语法、丰富的库支持以及强大的社区生态,深受程序员们的喜爱。Python 3.7.3是Python 3.x系列的一个稳定版本,包含了众多新特性与优化。本手册详细介绍了这一版本的各个...

    python官方3.6.4-amd64版本exe安装包

    Python是一种广泛使用的高级编程语言,以其易读性、简洁的语法和强大的功能而闻名。Python 3.6.4是Python 3.x系列的一个稳定版本,特别为AMD64(也称为x86-64)架构设计,适用于64位操作系统。这个“python-3.6.4-...

    趣学python源代码-python-for-kids source code

    Python是一种高级编程语言,它的语法清晰,注重可读性,非常适合初学者。Python-for-Kids的源代码中,会涵盖变量、数据类型(如整型、浮点型、字符串)、控制结构(如if-else语句、for循环、while循环)以及函数的...

    全国青少年软件编程等级考试大纲与考级解读(Python1级-6级).zip

    Python3级至5级,逐步引入面向对象编程概念,包括类与对象、继承、多态等核心概念。此外,还会涉及异常处理、文件和目录操作、模块化编程等进阶主题。这一阶段的目标是培养学生的代码组织能力和问题解决能力。 ...

    Python编程基础-源代码.zip

    总的来说,"Python编程基础-源代码.zip"提供了一个系统学习Python编程的良好起点,涵盖了Python的基本语法、数据结构、控制流程、函数、面向对象编程等多个方面。通过这个压缩包,初学者可以逐步建立起坚实的Python...

    Python核心编程--经典,推荐!

    2. **面向对象编程**:详细介绍Python中的类、对象、继承等面向对象编程思想。 3. **高级特性**:如装饰器、上下文管理器、迭代器、生成器等。 4. **网络编程与Web开发**:涵盖网络协议、HTTP请求、Web框架等内容。 ...

    python-3.9.1-docs-pdf-a4.zip

    同时,文档会涵盖类与对象,这是Python面向对象编程的核心,包括类的定义、对象的创建、继承、封装和多态等概念。 文档还详细阐述了Python的函数式编程特性,如高阶函数、map、filter和reduce等,以及lambda表达式...

    Python实用教程,包括:Python基础,Python高级特性,面向对象编程-python-tutorial.zip

    Python是一种广泛使用的高级编程语言,以其易读性、简洁的语法和强大的功能而备受青睐。本教程涵盖了Python的基础知识、高级特性以及面向对象编程的概念,旨在帮助初学者快速上手并深入理解Python编程。 首先,...

    python-3.7.7-docs-pdf-a4.zip

    Python是一种广泛使用的高级编程语言,以其易读性、简洁的语法和强大的功能而闻名。Python 3.7.7是该语言的一个稳定版本,提供了许多改进和新特性。本资源"python-3.7.7-docs-pdf-a4.zip"包含了一份详尽的Python ...

Global site tag (gtag.js) - Google Analytics