1.类

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

2.创建类

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

3.程序

 #!/usr/bin/python
# -*- coding: UTF-8 -*- 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

4.实例化

  不需要new、

5.程序

 # -*- coding: utf-8 -*-
from ClassTest1 import Employee
"创建 Employee 类的第一个对象"
emp1 = Employee("Zara", 2000)
emp1.displayCount()
emp1.displayEmployee()
"创建 Employee 类的第二个对象"
emp2 = Employee("Manni", 5000)
emp2.displayCount()
emp2.displayEmployee() print Employee.empCount

6.运行结果

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

  

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

 # -*- coding: utf-8 -*-
from ClassTest import Employee
"创建 Employee 类的第一个对象"
emp1 = Employee("Zara", 2000)
emp1.displayCount()
emp1.displayEmployee()
"创建 Employee 类的第二个对象"
emp2 = Employee("Manni", 5000)
emp2.displayCount()
emp2.displayEmployee() print Employee.empCount print '=====================' #操作属性
emp1.age = 7 # 添加一个 'age' 属性
print emp1.age
emp1.age = 8 # 修改 'age' 属性
print emp1.age
del emp1.age # 删除 'age' 属性 #利用以下函数操作属性
setattr(emp1, 'age', 8) # 添加属性 'age' 值为 8
print hasattr(emp1, 'age') # 如果存在 'age' 属性返回 True。
print getattr(emp1, 'age') # 返回 'age' 属性的值
delattr(emp1, 'age') # 删除属性 'age'

8.效果

  

9.内置类的属性

  __dict__

    类的属性,包含一个字典

  __doc__

    类的文档字符串

  __name__

    类名

  __module__

    类定义所在的模块

  __bases__

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

10.程序

 print "Employee.__doc__:", Employee.__doc__
print "Employee.__name__:", Employee.__name__
print "Employee.__module__:", Employee.__module__
print "Employee.__bases__:", Employee.__bases__
print "Employee.__dict__:", Employee.__dict__

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

  类的私有属性:

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

  类的方法:

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

  类的私有方法:

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

12.继承

  语法:

    class   派生类名  (基类名)

13.方法重写

  

14.多态

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

  

006 python的面向对象基础的更多相关文章

  1. day020|python之面向对象基础2

    面向对象基础2 目录 面向对象基础2 7 对象与类型 7.1 类即类型 7.1.1 变量的三个指标 7.1.2 变量类型 7.2 list.append()方法原理 8 对象的高度整合 8.1 通过面 ...

  2. python开发面向对象基础:封装

    一,封装 [封装] 隐藏对象的属性和实现细节,仅对外提供公共访问方式. [好处] 1. 将变化隔离: 2. 便于使用: 3. 提高复用性: 4. 提高安全性: [封装原则] 1. 将不需要对外提供的内 ...

  3. python开发面向对象基础:接口类&抽象类&多态&钻石继承

    一,接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实 ...

  4. PYTHON开发--面向对象基础入门

    面向对象 一:面向对象初级 1.思考:首先在python中,以前我们以前用到的几乎都是函数式编程,但是有时候函数式编程其中代码重复利用率太高,我们往往会把这些重复代码写进一个函数日后去调用,所以呢,今 ...

  5. PYTHON开发--面向对象基础二

    一.成员修饰符 共有成员 私有成员, __字段名 - 无法直接访问,只能间接访问 1.     私有成员 1.1  普通方法种的私有成员 class Foo: def __init__(self, n ...

  6. python开发面向对象基础:人狗大战学面向对象

    一,通过函数写人狗大战这个故事 #!/usr/bin/env python #_*_coding:utf-8_*_ #1.函数 人模子 def person(name,level,life_value ...

  7. Python:面向对象基础

    基本理论 什么是对象 万物皆对象 对象是具体的事物 拥有属性.行为 把许多零散的东西,封装成为一个整体 Python中一切东西都是对象,Python是一门特别彻底的面向对象编程语言(OOP) 其他编程 ...

  8. python 1 面向对象基础知识

    1.编码范式 编程  是程序员用特定的 语法+数据结构+算法 组成的代码来告诉计算机如何执行任务的过程 如果把编程比作习武,编程方式就是武林中的各种流派,而在编程的世界里面最常见的两大流派是:面向过程 ...

  9. python开发面向对象基础:组合&继承

    一,组合 组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合      人类装备了武器类就是组合 1.圆环,将圆类实例后传给圆环类 #!/usr/bin/env python #_*_ ...

随机推荐

  1. ICPC 2015 Shenyang Online-E-EXCITED DATAbase

    题目描述 She says that any Pavarotti among the nightingales will serenade his mate while she sits on her ...

  2. angularJS $watch $apply $digest

    看O'Reilly的书看到$watch这部分,不过没看懂,网上很多资料也含糊不清,不过还是找到了几个好的,简单记录一下. 一句话说明,$watch是用来监视变量的,好了直接上代码 <html&g ...

  3. DNS域传送漏洞

    nslookup -type=ptr 8.8.8.8             #查询一个IP地址对应的域名 nslookup -type=ns baidu.com         #查询baidu.c ...

  4. POJ 1240 Pre-Post-erous! && East Central North America 2002 (由前序后序遍历序列推出M叉树的种类)

    题目链接 问题描述 : We are all familiar with pre-order, in-order and post-order traversals of binary trees. ...

  5. Hive笔记之导出查询结果

    一.导出到本地 导出查询结果到本地: INSERT OVERWRITE LOCAL DIRECTORY "/tmp/hive-result/t_visit_video" SELEC ...

  6. 45、文件过滤器FilenameFilter

    文件过滤器FilenameFilter JDK中提供了一个FilenameFilter的接口用来实现文件过滤功能,可以使用这个文件过滤器来实现上一节中的问题. File类中有一个带参数的list方法 ...

  7. Python练习-无参装饰器的正确打开方式

    import time def DecoUserPrint(UserFunc):#定义一个DecoUserPrint接收参数的多重方法 def DecoPrint(): StartTime = tim ...

  8. JS函数的几种用法

    1.正常使用:

  9. Servlet笔记3--Servlet生命周期

    Servlet生命周期:

  10. 【技巧总结】Penetration Test Engineer[4]-Web-Security(文件处理、会话管理、访问控制、SSRF、反序列化漏洞)

    Web安全基础2 3.8.文件处理 1)文件上传 一个正常的业务需求,问题在于控制上传合法文件. 防御文件上传 客户端javascript校验(通常校验扩展名) 检查MIME类型 检查内容是否合法 随 ...