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. jQuery中使用attribute,prop获取,设置input的checked值

    1.prop方法获取.设置checked属性 当input控件checkbox设置了checked属性时,无论checked=”“或 checked=”checked”,$(obj).prop(“ch ...

  2. git 提交模板配置

    1.创建模板文件,比如gitTemplate.txt,内容如下: ABSTRACT:修改自测发现的多度数据同步相关问题. Bug Fix [Y/N]:NBug ID:New Feature [Y/N] ...

  3. webpack的基础入门

    webpack的基础入门 这里对于 webpack 的基础入门进行一些总结,可以参考 github 上的 webpack-demo ,链接是 https://github.com/RealAndMe/ ...

  4. COGS 513 八

    513. 八 http://www.cogs.pro/cogs/problem/problem.php?pid=513 ★☆   输入文件:eight.in   输出文件:eight.out   简单 ...

  5. 简单的多对一传输ns2仿真

    实验名称:简单的多对一传输仿真 实验目的:1.研究怎么实现多对一传输. 实验步骤: 1.写c++代码并注册报文头. 先说一下多对一传输的方式.最开始,接收端发送控制报文给所有的发送端,告诉他们要发送多 ...

  6. HDU 1422 重温世界杯 DP题

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1422 解题报告:DP题,要使旅行的城市最多,关键是要选出一个城市作为开始,以这个城市作为开始的城市时, ...

  7. Django rest framwork-CMDB API实战

    一.序列化 serializers.py from rest_framework import serializers from web_manage import models class Asse ...

  8. hdu 确定比赛名次(拓扑排序)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285 确定比赛名次 Time Limit: 2000/1000 MS (Java/Others)    ...

  9. 当遇到not a dynamic executable时怎么做

    当我使用ldd查找Drcom所缺少的32为库的时候提示not a dynamic executable 最后网上找到答案 来自http://forum.ubuntu.org.cn/viewtopic. ...

  10. CentOS7最小化安装之后无法联网以及无法使用ifconfig以及无法使用yum安装软件

    无法联网解决办法,CentOS-7默认网卡未激活,进入BOOS设置修改,或者直接修改配置文件,然后重启服务 1 修改网卡配置文件: 激活: 2 重启服务即可: service network rest ...