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探索之创建二叉树
Oct 25 Python
python+django+sql学生信息管理后台开发
Jan 11 Python
Django框架多表查询实例分析
Jul 04 Python
Python 比较文本相似性的方法(difflib,Levenshtein)
Oct 15 Python
在双python下设置python3为默认的方法
Oct 31 Python
Python字符串对象实现原理详解
Jul 01 Python
django 通过url实现简单的权限控制的例子
Aug 16 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
Aug 22 Python
python实现的按要求生成手机号功能示例
Oct 08 Python
python如何提取英语pdf内容并翻译
Mar 03 Python
PyQT5 实现快捷键复制表格数据的方法示例
Jun 19 Python
基于django2.2连oracle11g解决版本冲突的问题
Jul 02 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
跟我学Laravel之请求与输入
2014/10/15 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
PHP 实现 WebSocket 协议原理与应用详解
2020/04/22 PHP
从面试题学习Javascript 面向对象(创建对象)
2012/03/30 Javascript
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
2013/01/02 Javascript
js 火狐下取本地路径实现思路
2013/04/02 Javascript
Javascript学习笔记之 函数篇(二) : this 的工作机制
2014/06/24 Javascript
jQuery的:parent选择器定义和用法
2014/07/01 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
2015/12/18 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
2016/05/10 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
2017/09/14 Javascript
express+mockjs实现模拟后台数据发送功能
2018/01/07 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
2019/01/18 jQuery
vue项目中仿element-ui弹框效果的实例代码
2019/04/22 Javascript
简单了解TypeScript中如何继承 Error 类
2019/06/21 Javascript
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
[10:54]Team Spirit vs Navi
2018/06/07 DOTA
python之模拟鼠标键盘动作具体实现
2013/12/30 Python
一波神奇的Python语句、函数与方法的使用技巧总结
2015/12/08 Python
pandas 读取各种格式文件的方法
2018/06/22 Python
详解django的serializer序列化model几种方法
2018/10/16 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
pytorch下的unsqueeze和squeeze的用法说明
2021/02/06 Python
澳大利亚香水在线商店:City Perfume
2020/09/02 全球购物
eDreams德国:南欧领先的在线旅游公司
2020/12/07 全球购物
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
廉洁教育学习材料
2014/05/19 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
公司奖励通知
2015/04/21 职场文书
英语演讲开场白
2015/05/29 职场文书
关于车尾的标语大全
2015/08/11 职场文书
关于vue-router-link选择样式设置
2022/04/30 Vue.js
使用Python开发冰球小游戏
2022/04/30 Python
JS轻量级函数式编程实现XDM二
2022/06/16 Javascript