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实现字典依据value排序
Feb 24 Python
Python 专题四 文件基础知识
Mar 20 Python
Python中表达式x += y和x = x+y 的区别详解
Jun 20 Python
Python使用zip合并相邻列表项的方法示例
Mar 17 Python
Python中偏函数用法示例
Jun 07 Python
详解flask表单提交的两种方式
Jul 21 Python
Python使用sort和class实现的多级排序功能示例
Aug 15 Python
Pyinstaller打包.py生成.exe的方法和报错总结
Apr 02 Python
Python3直接爬取图片URL并保存示例
Dec 18 Python
Tensorflow使用Anaconda、pycharm安装记录
Jul 29 Python
在python中实现导入一个需要传参的模块
May 12 Python
Django框架中表单的用法
Jun 10 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
新浪微博API开发简介之用户授权(PHP基础篇)
2011/09/25 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
PHP符合PSR编程规范的实例分享
2016/12/21 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
2016/12/27 PHP
JavaScript 调试器简介
2009/02/21 Javascript
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
2011/04/27 Javascript
jquery 漂亮的删除确认和提交无刷新删除示例
2013/11/13 Javascript
jQuery.event兼容各浏览器的event详细解析
2013/12/18 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
2016/08/02 Javascript
js实现选项卡内容切换以及折叠和展开效果【推荐】
2017/01/08 Javascript
微信小程序 详解页面跳转与返回并回传数据
2017/02/13 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
2017/03/02 Javascript
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
使用Nuxt.js改造已有项目的方法
2018/08/07 Javascript
微信小程序上线发布流程图文详解
2019/05/06 Javascript
在pycharm中开发vue的方法步骤
2020/03/04 Javascript
vue使用openlayers实现移动点动画
2020/09/24 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
2020/10/19 Javascript
JS+CSS实现动态时钟
2021/02/19 Javascript
[37:03]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第二场 12.16
2020/12/18 DOTA
利用python画出折线图
2018/07/26 Python
Python使用sqlalchemy模块连接数据库操作示例
2019/03/13 Python
numpy 返回函数的上三角矩阵实例
2019/11/25 Python
numpy.linalg.eig() 计算矩阵特征向量方式
2019/11/29 Python
简单了解django文件下载方式
2020/02/10 Python
丝芙兰美国官网:SEPHORA美国
2016/08/03 全球购物
马来西亚与新加坡长途巴士售票网站:BusOnlineTicket.com
2018/11/05 全球购物
有影响力的人、名人和艺术家的官方商品:Represent
2019/11/26 全球购物
捷克多品牌在线时尚商店:ANSWEAR.cz
2020/10/03 全球购物
shell变量的作用空间是什么
2013/08/17 面试题
2013的个人自我评价
2013/12/26 职场文书
党的群众路线教育实践活动教师自我剖析材料
2014/10/09 职场文书
关于感恩的素材句子(38句)
2019/11/11 职场文书
vue如何批量引入组件、注册和使用详解
2021/05/12 Vue.js
试了下Golang实现try catch的方法
2021/07/01 Golang
USB TYPE-C 或将成为所有智能手机充电标准
2022/04/21 数码科技