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抓taobao图片爬虫
Oct 26 Python
Windows安装Python、pip、easy_install的方法
Mar 05 Python
Python基于Matplotlib库简单绘制折线图的方法示例
Aug 14 Python
python中reduce()函数的使用方法示例
Sep 29 Python
浅析PHP与Python进行数据交互
May 15 Python
python中利用h5py模块读取h5文件中的主键方法
Jun 05 Python
Python3中exp()函数用法分析
Feb 19 Python
详解Python传入参数的几种方法
May 16 Python
Python3 mmap内存映射文件示例解析
Mar 23 Python
Django import export实现数据库导入导出方式
Apr 03 Python
django 实现后台从富文本提取纯文本
Jul 02 Python
PyCharm+PyQt5+QtDesigner配置详解
Aug 12 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和ACCESS写聊天室(八)
2006/10/09 PHP
php合并数组array_merge函数运算符加号与的区别
2008/10/31 PHP
PHP 引用是个坏习惯
2010/03/12 PHP
PHP实现递归无限级分类
2015/10/22 PHP
PHP创建PowerPoint2007文档的方法
2015/12/10 PHP
又拍云异步上传实例教程详解
2016/04/19 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
javascript 点击整页变灰的效果(可做退出效果)。
2008/01/09 Javascript
jQuery-Tools-overlay 使用介绍
2012/07/14 Javascript
jQuery Ajax使用实例
2015/04/16 Javascript
使用JavaScript的AngularJS库编写hello world的方法
2015/06/23 Javascript
jquery实现动静态条形统计图
2015/08/17 Javascript
Jquery 全选反选实例代码
2015/11/19 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
2016/08/01 Javascript
javascript基础知识之html5轮播图实例讲解(44)
2017/02/17 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
2018/08/08 Javascript
微信小程序实现多选框全选与取消全选功能示例
2019/05/14 Javascript
JS中call()和apply()的功能及用法实例分析
2019/06/28 Javascript
vue3+typescript实现图片懒加载插件
2020/10/26 Javascript
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
Python科学计算环境推荐——Anaconda
2014/06/30 Python
python实现的登录和操作开心网脚本分享
2014/07/09 Python
对pandas中apply函数的用法详解
2018/04/10 Python
Django 中使用流响应处理视频的方法
2018/07/20 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
python中PS 图像调整算法原理之亮度调整
2019/06/28 Python
python傅里叶变换FFT绘制频谱图
2019/07/19 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
2019/09/25 Python
CSS3实现超酷的黑猫警长首页
2016/04/26 HTML / CSS
酒吧员工的岗位职责
2013/11/26 职场文书
先进班级集体事迹材料
2014/01/30 职场文书
护士上岗前培训自我鉴定
2014/04/20 职场文书
大学社团招新的通讯稿
2014/09/10 职场文书
检讨书模板
2015/01/29 职场文书
学校捐款活动总结
2015/05/09 职场文书