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使用beautifulsoup从爱奇艺网抓取视频播放
Jan 23 Python
Python实现复杂对象转JSON的方法示例
Jun 22 Python
python文件特定行插入和替换实例详解
Jul 12 Python
微信跳一跳自动运行python脚本
Jan 08 Python
基于python神经卷积网络的人脸识别
May 24 Python
将Django项目部署到CentOs服务器中
Oct 18 Python
使用Python3内置文档高效学习以及官方中文文档
May 19 Python
Python 3 实现定义跨模块的全局变量和使用教程
Jul 07 Python
通过python实现弹窗广告拦截过程详解
Jul 10 Python
Python 中的 import 机制之实现远程导入模块
Oct 29 Python
Python绘制全球疫情变化地图的实例代码
Apr 20 Python
pip install命令安装扩展库整理
Mar 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
php 判断服务器操作系统的类型
2014/02/17 PHP
php 过滤英文标点符号及过滤中文标点符号代码
2014/06/12 PHP
PHP面向对象程序设计之接口用法
2014/08/20 PHP
PHP使用http_build_query()构造URL字符串的方法
2016/04/02 PHP
php代码检查代理ip的有效性
2016/08/19 PHP
Laravel下生成验证码的类
2017/11/15 PHP
PHP生成加减算法方式的验证码实例
2018/03/12 PHP
PHP 对象继承原理与简单用法示例
2020/04/21 PHP
js调用后台servlet方法实例
2013/06/09 Javascript
javascript匿名函数应用示例介绍
2014/03/07 Javascript
jquery实现可点击伸缩与展开的菜单效果代码
2015/08/31 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
JS跳转手机站url的若干注意事项
2017/10/18 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
2019/01/07 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
2019/05/23 Javascript
使用JS location实现搜索框历史记录功能
2019/12/23 Javascript
Vue中el-form标签中的自定义el-select下拉框标签功能
2020/04/20 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
python中文乱码不着急,先看懂字节和字符
2017/12/20 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
2018/01/26 Python
使用pandas对两个dataframe进行join的实例
2018/06/08 Python
Python装饰器用法实例分析
2019/01/14 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
2020/02/13 Python
凯撒娱乐:Caesars Entertainment
2018/02/23 全球购物
公共汽车、火车和飞机票的通用在线预订和销售平台:INFOBUS
2019/11/30 全球购物
英国电信商店:BT Shop
2019/12/17 全球购物
Penhaligon’s英国官网:成立于1870年的英国香水制造商
2021/02/18 全球购物
小学生手册家长评语
2014/04/16 职场文书
车辆工程专业求职信
2014/06/14 职场文书
领导班子自我剖析材料
2014/08/16 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
歌咏比赛主持词
2015/06/29 职场文书
Python入门之使用pandas分析excel数据
2021/05/12 Python
html+css实现分层金字塔的实例
2021/06/02 HTML / CSS
nginx实现动静分离的方法示例
2021/11/07 Servers
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技