• 006 python的面向对象基础


    1.类

      描述具有相同属性与方法的对象的集合。

    2.创建类

      使用class来创建一个新类,class之后为类的名称并以冒号结尾

    3.程序

     1 #!/usr/bin/python
     2 # -*- coding: UTF-8 -*-
     3 
     4 class Employee:
     5     '所有员工的基类'
     6     empCount = 0
     7 
     8     def __init__(self, name, salary):
     9         self.name = name
    10         self.salary = salary
    11         Employee.empCount += 1
    12 
    13     def displayCount(self):
    14         print "Total Employee %d" % Employee.empCount
    15 
    16     def displayEmployee(self):
    17         print "Name : ", self.name, ", Salary: ", self.salary

    4.实例化

      不需要new、

    5.程序

     1 # -*- coding: utf-8 -*-
     2 from ClassTest1 import Employee
     3 "创建 Employee 类的第一个对象"
     4 emp1 = Employee("Zara", 2000)
     5 emp1.displayCount()
     6 emp1.displayEmployee()
     7 "创建 Employee 类的第二个对象"
     8 emp2 = Employee("Manni", 5000)
     9 emp2.displayCount()
    10 emp2.displayEmployee()
    11 
    12 print Employee.empCount

    6.运行结果

      注意点:empCount变量是一个类变量,它的值可以在类的所有实例之间共享,可以在内部类或者外部类使用Employee.empCount访问。

      

    7.操作属性(添加,修改,删除)

     1 # -*- coding: utf-8 -*-
     2 from ClassTest import Employee
     3 "创建 Employee 类的第一个对象"
     4 emp1 = Employee("Zara", 2000)
     5 emp1.displayCount()
     6 emp1.displayEmployee()
     7 "创建 Employee 类的第二个对象"
     8 emp2 = Employee("Manni", 5000)
     9 emp2.displayCount()
    10 emp2.displayEmployee()
    11 
    12 print Employee.empCount
    13 
    14 print '====================='
    15 
    16 #操作属性
    17 emp1.age = 7  # 添加一个 'age' 属性
    18 print emp1.age
    19 emp1.age = 8  # 修改 'age' 属性
    20 print emp1.age
    21 del emp1.age  # 删除 'age' 属性
    22 
    23 #利用以下函数操作属性
    24 setattr(emp1, 'age', 8) # 添加属性 'age' 值为 8
    25 print hasattr(emp1, 'age')    # 如果存在 'age' 属性返回 True。
    26 print getattr(emp1, 'age')    # 返回 'age' 属性的值
    27 delattr(emp1, 'age')    # 删除属性 'age'

    8.效果

      

    9.内置类的属性

      __dict__

        类的属性,包含一个字典

      __doc__

        类的文档字符串

      __name__

        类名

      __module__

        类定义所在的模块

      __bases__

        类的所有父类构成的元素,包含一个元组

    10.程序

    1 print "Employee.__doc__:", Employee.__doc__
    2 print "Employee.__name__:", Employee.__name__
    3 print "Employee.__module__:", Employee.__module__
    4 print "Employee.__bases__:", Employee.__bases__
    5 print "Employee.__dict__:", Employee.__dict__

    11.类的私有属性和私有方法

      类的私有属性:

        __private_attrs:两个下划线开头,生命该属性为私有,不能在外部被使用,在内部可以self.__private_attrs。

      类的方法:

        类的方法必须使用参数self,且是第一个参数

      类的私有方法:

        __privvate_method:两个下划线开头,声明为私有方法,不能被外部调用,内部可以调用,self.__private_methods。

    12.继承

      语法:

        class   派生类名  (基类名)

    13.方法重写

      

    14.多态

      python不支持多态也不用多态。

      

  • 相关阅读:
    算法疑难(js实现)---5、变态跳台阶
    算法疑难(js实现)---4、跳台阶(记忆化递归)
    算法疑难(js实现)---3、两个栈来实现一个队列
    算法疑难(js实现)---2、重建二叉树
    Ext的Panel总结(好文章)
    Extjs datefield 日历控件中文显示
    EXTJS项目实战经验总结一:日期组件的change事件:
    ExtJs内的datefield控件选择日期过后的事件监听select
    ExtJs FormPanel布局
    开发extjs常用的插件
  • 原文地址:https://www.cnblogs.com/juncaoit/p/7617254.html
Copyright © 2020-2023  润新知