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将unicode转为str的方法
Jun 21 Python
pandas 透视表中文字段排序方法
Nov 16 Python
对python中的six.moves模块的下载函数urlretrieve详解
Dec 19 Python
linux环境中没有网络怎么下载python
Jul 07 Python
ORM Django 终端打印 SQL 语句实现解析
Aug 09 Python
pytorch程序异常后删除占用的显存操作
Jan 13 Python
解决python replace函数替换无效问题
Jan 18 Python
Python更新所有已安装包的操作
Feb 13 Python
Python统计文本词汇出现次数的实例代码
Feb 27 Python
Python实现GIF图倒放
Jul 16 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
Dec 21 Python
教你用python实现12306余票查询
Jun 30 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的控制语句
2006/10/09 PHP
php页面缓存ob系列函数介绍
2012/10/18 PHP
PHP实现图片压缩的两则实例
2014/07/19 PHP
php单态设计模式(单例模式)实例
2014/11/18 PHP
PHP中array_slice函数用法实例详解
2014/11/25 PHP
php使用Jpgraph绘制3D饼状图的方法
2015/06/10 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
2016/01/12 PHP
CodeIgniter扩展核心类实例详解
2016/01/20 PHP
Yii2框架制作RESTful风格的API快速入门教程
2016/11/08 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
js实现四舍五入完全保留两位小数的方法
2016/08/02 Javascript
AngularJS基础 ng-selected 指令简单示例
2016/08/03 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
Vue项目history模式下微信分享爬坑总结
2019/03/29 Javascript
详解JavaScript 浮点数运算的精度问题
2019/07/23 Javascript
Python 实现链表实例代码
2017/04/07 Python
Python中序列的修改、散列与切片详解
2017/08/27 Python
pytorch + visdom CNN处理自建图片数据集的方法
2018/06/04 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
通过python实现随机交换礼物程序详解
2019/07/10 Python
python监控进程状态,记录重启时间及进程号的实例
2019/07/15 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
django序列化serializers过程解析
2019/12/14 Python
使用pickle存储数据dump 和 load实例讲解
2019/12/30 Python
python 两个一样的字符串用==结果为false问题的解决
2020/03/12 Python
Python pip install如何修改默认下载路径
2020/04/29 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
2020/09/03 Python
幼师专业毕业生自荐信
2013/09/29 职场文书
给面试官的感谢信
2014/02/01 职场文书
2014中学教师节广播稿
2014/09/10 职场文书
2014年科研工作总结
2014/12/03 职场文书
亮剑观后感
2015/06/05 职场文书
幼儿园大班教师随笔
2015/08/14 职场文书
小学生运动会广播
2015/08/19 职场文书