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不支持多态也不用多态。

  

原文地址:https://www.cnblogs.com/juncaoit/p/7617254.html