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. javascript抛物投栏(抛物线实践)

    平面内,到定点与定直线的距离相等的点的轨迹叫做抛物线.水平抛物线就是水平匀速,垂直加速的运动. 抛物线的性质:面内与一个定点F和一条定直线l 的距离相等的点的轨迹叫做抛物线. 定点F叫做抛物线的焦点. ...

  2. 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  3. Win10下, TortoiseGit安装及配合Gitee使用完整版

    Windows10下, TortoiseGit的安装及使用, 并配合Gitee码云使用! 1) 安装TortoiseGit 官网, 32位, 64位, 自选 https://tortoisegit.o ...

  4. (转载) Mysql 时间操作(当天,昨天,7天,30天,半年,全年,季度)

    1 . 查看当天日期 select current_date(); 2. 查看当天时间 select current_time(); 3.查看当天时间日期 select current_timesta ...

  5. Python-socket网络编程-Day8

    目录Day8-Python socket 11.Socket 11.1.socket和file的区别: 11.2.WEB服务应用: 21.3.更多功能 21.4.socket方法: 41.5. 服务端 ...

  6. Linux下的Shell编程(2)环境变量和局部变量

    Shell Script是一种弱类型语言,使用变量的时候无需首先声明其类型. 局部变量在本地数据区分配内存进行存储,这个变量归当前的Shell所有,任何子进 程都不能访问本地变量.这些变量与环境变量不 ...

  7. 教你用命令行激活win10系统

    对于笔者这样爱自己动手的电脑爱好者来说,当然会选择自己组装一台性价比高的台式电脑,一切都准备就绪了,系统也装好了,就差最后一步了--激活系统. 笔者真的很幸运,在网上找到了一些可以使用的密钥,我装的是 ...

  8. cookie的实现原理

    cookie技术通过在请求和响应报文中写入cookie信息来控制客户点的状态 cookie会根据从服务器端发送的响应报文内的一个叫做set-cookie的首部字段信息,通知客户端保存cookie 当下 ...

  9. java 面向对象编程。。。。

    经过一周的学习(java),总结了许多,对java的理解,java的类型,运用,安装,基础语法,变量,常量,表达式,语句 java从C语言中继承了大量语言特性.java面向对象编程的基本特征,包括继承 ...

  10. Linux下的MySQL5.7.14启动方法

    启动MySQL服务: systemctl start mysql 启动MySQL服务(安全方式): mysqld_safe --user=mysql & 登录MySQL(有密码): mysql ...