python类定义的讲解


Posted in Python onNovember 01, 2013

一、类定义:

class <类名>:
 <语句>

类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性。如果直接使用类名修改其属性,那么将直接影响到已经实例化的对象

类的私有属性:

__private_attrs  两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs
类的方法

在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数
私有的类方法

__private_method 两个下划线开头,声明该方法为私有方法,不能在类地外部调用。在类的内部调用slef.__private_methods

类的专有方法:
__init__  构造函数,在生成对象时调用
__del__   析构函数,释放对象时使用
__repr__ 打印,转换
__setitem__按照索引赋值
__getitem__按照索引获取值
__len__获得长度
__cmp__比较运算
__call__函数调用

__add__加运算
__sub__减运算
__mul__乘运算
__div__除运算
__mod__求余运算
__pow__称方

#类定义  
    class people:  
        #定义基本属性  
        name = ''  
        age = 0  
        #定义私有属性,私有属性在类外部无法直接进行访问  
        __weight = 0  
        #定义构造方法  
        def __init__(self,n,a,w):  
            self.name = n  
            self.age = a  
            self.__weight = w  
        def speak(self):  
            print("%s is speaking: I am %d years old" %(self.name,self.age))        
    p = people('tom',10,30)  
    p.speak()

二、继承类定义:
1.单继承
class <类名>(父类名)
   <语句>

class childbook(book)
    age = 10

#单继承示例  
    class student(people):  
        grade = ''  
        def __init__(self,n,a,w,g):  
            #调用父类的构函  
            people.__init__(self,n,a,w)  
            self.grade = g  
        #覆写父类的方法  
        def speak(self):  
            print("%s is speaking: I am %d years old,and I am in grade %d"%(self.name,self.age,self.grade))           s = student('ken',20,60,3)  
    s.speak()

2.类的多重继承
class 类名(父类1,父类2,....,父类n)
     <语句1>

需要注意圆括号中父类的顺序,若是父类中有相同的方法名,而在子类使用时未指定,python从左至右搜索,即方法在子类中未找到时,从左到右查找父类中是否包含方法
#另一个类,多重继承之前的准备  
class speaker():  
    topic = ''  
    name = ''  
    def __init__(self,n,t):  
        self.name = n  
        self.topic = t  
    def speak(self):  
        print("I am %s,I am a speaker!My topic is %s"%(self.name,self.topic))  #多重继承  
class sample(speaker,student):  
    a =''  
    def __init__(self,n,a,w,g,t):  
        student.__init__(self,n,a,w,g)  
        speaker.__init__(self,n,t)  
test = sample("Tim",25,80,4,"Python")  
test.speak()#方法名同,默认调用的是在括号中排前地父类的方法
Python 相关文章推荐
Python linecache.getline()读取文件中特定一行的脚本
Sep 06 Python
python简单程序读取串口信息的方法
Mar 13 Python
python获取各操作系统硬件信息的方法
Jun 03 Python
简单的Apache+FastCGI+Django配置指南
Jul 22 Python
Python实现一个服务器监听多个客户端请求
Apr 12 Python
python多线程之事件Event的使用详解
Apr 27 Python
用django设置session过期时间的方法解析
Aug 05 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
Aug 15 Python
python 利用已有Ner模型进行数据清洗合并代码
Dec 24 Python
Python代码中如何读取键盘录入的值
May 27 Python
Python调用jar包方法实现过程解析
Aug 11 Python
pycharm无法导入lxml的解决办法
Mar 31 Python
用实例说明python的*args和**kwargs用法
Nov 01 #Python
python操作MongoDB基础知识
Nov 01 #Python
python操作MySQL数据库具体方法
Oct 28 #Python
Python sys.path详细介绍
Oct 17 #Python
python开发的小球完全弹性碰撞游戏代码
Oct 15 #Python
python中 ? : 三元表达式的使用介绍
Oct 09 #Python
Python 文件和输入输出小结
Oct 09 #Python
You might like
php GeoIP的使用教程
2011/03/09 PHP
php 搜索框提示(自动完成)实例代码
2012/02/05 PHP
yii2带搜索功能的下拉框实例详解
2016/05/12 PHP
php文件系统处理方法小结
2016/05/23 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
2018/04/21 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
2019/10/15 PHP
pjblog修改技巧汇总
2007/03/12 Javascript
JS 分号引起的一段调试问题
2009/06/18 Javascript
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
使用do...while的方法输入一个月中所有的周日(实例代码)
2016/07/22 Javascript
javascript淘宝主图放大镜功能
2016/10/20 Javascript
IScroll那些事_当内容不足时下拉刷新的解决方法
2017/07/18 Javascript
EasyUI创建人员树的实例代码
2017/09/15 Javascript
详解如何在微信小程序中愉快地使用sass
2018/07/30 Javascript
JointJS流程图的绘制方法
2018/12/03 Javascript
python实现自动更换ip的方法
2015/05/05 Python
利用python打印出菱形、三角形以及矩形的方法实例
2017/08/08 Python
Python获取当前页面内所有链接的四种方法对比分析
2017/08/19 Python
python traceback捕获并打印异常的方法
2018/08/31 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
使用django的ORM框架按月统计近一年内的数据方法
2019/07/18 Python
python虚拟环境的安装和配置(virtualenv,virtualenvwrapper)
2019/08/09 Python
python输出数组中指定元素的所有索引示例
2019/12/06 Python
python TCP包注入方式
2020/05/05 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
2020/06/01 Python
全球最大的生存食品、水和装备专用在线市场:BePrepared.com
2020/01/02 全球购物
HR喜欢的自荐信格式
2013/10/08 职场文书
银行存款证明样本
2014/01/17 职场文书
农村改厕实施方案
2014/03/22 职场文书
班级学习计划书
2014/04/27 职场文书
机关工会工作总结2015
2015/05/26 职场文书
position:sticky 粘性定位的几种巧妙应用详解
2021/04/24 HTML / CSS
python异步的ASGI与Fast Api实现
2021/07/16 Python
关于 Python json中load和loads区别
2021/11/07 Python
《游戏王:大师决斗》将推出新卡牌包4月4日上线
2022/03/31 其他游戏