Python笔记——类定义

一、类定义:

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__称方

示例:

  1. #类定义
  2. class people:
  3. #定义基本属性
  4. name = ''
  5. age = 0
  6. #定义私有属性,私有属性在类外部无法直接进行访问
  7. __weight = 0
  8. #定义构造方法
  9. def __init__(self,n,a,w):
  10. self.name = n
  11. self.age = a
  12. self.__weight = w
  13. def speak(self):
  14. print("%s is speaking: I am %d years old" %(self.name,self.age))
  15. p = people('tom',10,30)
  16. p.speak()

二、继承类定义:

1.单继承

class <类名>(父类名)

<语句>

eg.

class childbook(book)

age = 10

  1. #单继承示例
  2. class student(people):
  3. grade = ''
  4. def __init__(self,n,a,w,g):
  5. #调用父类的构函
  6. people.__init__(self,n,a,w)
  7. self.grade = g
  8. #覆写父类的方法
  9. def speak(self):
  10. print("%s is speaking: I am %d years old,and I am in grade %d"%(self.name,self.age,self.grade))
  11. s = student('ken',20,60,3)
  12. s.speak()

2.类的多重继承

class 类名(父类1,父类2,....,父类n)

<语句1>

需要注意圆括号中父类的顺序,若是父类中有相同的方法名,而在子类使用时未指定,python从左至右搜索

即方法在子类中未找到时,从左到右查找父类中是否包含方法

  1. #另一个类,多重继承之前的准备
  2. class speaker():
  3. topic = ''
  4. name = ''
  5. def __init__(self,n,t):
  6. self.name = n
  7. self.topic = t
  8. def speak(self):
  9. print("I am %s,I am a speaker!My topic is %s"%(self.name,self.topic))
  10. #多重继承
  11. class sample(speaker,student):
  12. a =''
  13. def __init__(self,n,a,w,g,t):
  14. student.__init__(self,n,a,w,g)
  15. speaker.__init__(self,n,t)
  16. test = sample("Tim",25,80,4,"Python")
  17. test.speak()#方法名同,默认调用的是在括号中排前地父类的方法

类方法的覆写——子类覆盖掉父类的方法

def 方法名与父类一致

若是在方法中要使用到父类方法 父类名.方法名

若是将类放到了模块中

使用时

import A

l = A.类()

以上三段程序的执行结果:

Python类的定义的更多相关文章

  1. python类的定义和使用

    python中类的声明使用关键词class,可以提供一个可选的父类或者说基类,如果没有合适的基类,那就用object作为基类. 定义格式: class 类名(object): "类的说明文档 ...

  2. python 类的定义 实例化 实例完后初始化

    先来看看 类的__init__, 类的__new__ , 元类的__new__的执行顺序 class TMetaclass(type): def __new__(cls,name,bases,attr ...

  3. Python类的定义、方法和属性使用

    类用来描述具有相同的属性和方法的对象的集合.对于在类中定义的函数,称为方法.类变量不直接叫做类变量,称为属性. 1.类的定义 例子: class User(): pass 说明: (1)定义了一个类名 ...

  4. python 类的定义和继承

    python 2 中类 一.类定义: ? 1 2 class <类名>:   <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性如果直接使用类 ...

  5. Python类的定义与使用

    #! /usr/bin/python # Filename:objvar.py class Person: '''Represents a person.''' population = 0 def ...

  6. python类及其方法

    python类及其方法 一.介绍 在 Python 中,面向对象编程主要有两个主题,就是类和类实例类与实例:类与实例相互关联着:类是对象的定义,而实例是"真正的实物",它存放了类中 ...

  7. python类:magic魔术方法

    http://blog.csdn.net/pipisorry/article/details/50708812 魔术方法是面向对象Python语言中的一切.它们是你可以自定义并添加"魔法&q ...

  8. (转)python类:magic魔术方法

    原文:https://blog.csdn.net/pipisorry/article/details/50708812 版权声明:本文为博主皮皮http://blog.csdn.net/pipisor ...

  9. python类定义

    在我的收藏中有一篇特别详细的类讲解 此处部分内容引自:http://blog.sina.com.cn/s/blog_59b6af690101bfem.html class myclass: 'this ...

随机推荐

  1. python脚本,计算起点终点高程

    import arcpy >>> import arcpy ... gd="D:/项目/shp/Pipe.gdb/ZK/GDPOINT" ... gx=" ...

  2. 北亚关于HP EVA4400/6400/8400/P6000的数据恢复解决方案

    [引言]本文档建立在针对HP EVA的大量测试性研究基础上,所有的细节几乎均为对EVA的破译型研究,目前全球范围内尚未发现类似资料,故可能表述方式和结论并不精确,仅为参考之用.我们公司为研究HP EV ...

  3. NYOJ 炫舞家st

    #include <iostream>#include <cstring>#include <algorithm>using namespace std; cons ...

  4. 06-移动端开发教程-fullpage框架

    CSS3的新特性已经讲完了,接下来我们看一下jQuery的一个全屏jQuery全屏滚动插件fullPage.js.我们经常见到一些全屏的特绚丽页面,手指或者鼠标滑动一下就是一整屏切换,而且还有各种效果 ...

  5. SpringCloud的Hystrix(五) Hystrix机制

    参考链接:http://www.jianshu.com/p/e07661b9bae8 一.前言 大型复杂的分布式系统中,高可用相关的技术架构非常重要.高可用架构非常重要的一个环节,就是如何将分布式系统 ...

  6. SpringCloud的EurekaClient : 客户端应用访问注册的微服务(有断路器场景)

    演示客户端应用如何访问注册在EurekaServer里的微服务 一.概念和定义 采用Ribbon或Feign方式访问注册到EurekaServer中的微服务.1.Ribbon实现了客户端负载均衡,2. ...

  7. Python入门之Python在Win10环境下的配置(图文教程)

    请在Python官网下载Python2.7和Python3.6安装包,虽然最新的是3.6版本,但是建议两个包都安装,方便后期在IDE工具切换. Python官网:https://www.python. ...

  8. Ecplise 配置本地 https 测试

    今天做项目,需要关联Office 365.为了实现Office365的用户邮件信息与项目的实时同步,需要建立webhook订阅. Office 365 API 连接  https://graph.mi ...

  9. python开发:初识python

    python简介 Python可以应用于众多领域,如:数据分析.组件集成.网络服务.图像处理.数值计算和科学计算等众多领域.目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube.D ...

  10. Hibernat 原生SQL运行结果集处理方法

    hibernate对原生SQL查询执行的控制是通过SQLQuery接口进行的. Session.createSQLQuery(); 使用list()方法可以把Session.createSQLQuer ...