当前位置: 首页 > 编程笔记 >

python 类详解及简单实例

万俟旭
2023-03-14
本文向大家介绍python 类详解及简单实例,包括了python 类详解及简单实例的使用技巧和注意事项,需要的朋友参考一下

python 类详解

1.类是一种数据结构,可用于创建实例。(一般情况下,类封装了数据和可用于该数据的方法)

2.Python类是可调用的对象,即类对象

3.类通常在模块的顶层进行定义,以便类实例能够在类所定义的源代码文件中的任何地方被创建。

4.实例初始化

  1. instance = ClassName(args....)
  2. 类在实例化时可以使用__init__和__del__两个特殊的方法。
 class ClassName(base):

'class documentation string' #类文档字符串
 class suite        #类体

  1. base:超类是一个或多个用于继承的父类集合
  2. 类体可以包括:声明语句、类成员定义、数据属性、方法
  3. 如果类不存在继承关系,就不提供括号里的base
 class FirstClass():
  spam = 30    #类数据属性
  def display(self): #类方法
   print self.spam

 x = FirstClass()   #创建类实例
 x.display()     #方法调用
 >>> 30
 dir(FirstClass)
 >>> ['__doc__', '__module__', 'display', 'spam']

  • class语句类似def,是可执行代码;直到运行class语句后,类才会创建
  • class语句内,任何赋值语句都会创建类属性
  • 每个实例对象都会继承类的属性并获得自己的名称空间

Python类方法及调用

实例(对象)包含的属性

  • 可调用的属性:方法
  • 数据属性

在OOP中,实例就像是带有“数据”的记录,而类是处理这些记录的“程序”

  • 通过实例调用方法相当于调用所属类的方法来处理当前实例。 比如之前的代码例子,x.display() 会被自动转换为 FirstClass.display(x),即调用类的方法来处理实例x
  • 因此,类中每个方法必须有self参数,它隐含当前实例之意
  • 在方法内对self属性做赋值运算会产生每个实例自己的属性
  • Python规定,没有实例,方法不允许被调用,这是‘绑定'(binding)的概念
  • class语句中的赋值语句会创建类属性,如前面例子的spam
  • 在类方法中对传给方法的特殊参数self进行赋值会创建实例属性

Python构造器

创建实例时,Python会自动调用类中的__init__方法,以隐形的为实例提供属性

  1. __init__方法被称为构造器
  2. 如果类中没有定义__init__方法,实例创建之初仅仅是一个简单的名称空间。
  3. __init__的第一个参数一定是self ,self 变量用于在类实例方法中引用方法所绑定的实例。因为方法的实例在任何方法调用中总是作为第一个参数传递的,self 被选中用来代表实例。你必须在方法声明中放上 self,但可以在方法中不使用实例(self)。如果你的方法中没有用到 self , 那么请考虑创建一个常规函数,除非你有特别的原因。毕竟,你的方法代码没有使用实例,没有与类关联其功能,这使得它看起来更像一个常规函数。在其它面向对象语言中,self 可能被称为 this。
  • __init__不能返回任何对象
  • 析构函数:__del__
  • 构造函数是必要的,而析构函数常常可以不考虑(Python解释器会自己回收)
class MyClass():
 def __init__(self, name):
  self.name = name
  print 'My name is ' + self.name
 def __del__(self):
  print self.name + ' is dead.'

i1 = MyClass('Shaw')
>>> My name is Shaw
del i1
>>> Shaw id dead.

类的特殊属性

  • 使用dir()或__dict__,查看类或实例的属性
  • __doc__:获取文档字符串
  • __base__:获取所有父类
  • __module__:类所在的模块
  • __name__:实例所属类的名字

Python类方法中可用的变量

  • 实例变量:self.变量名
  • 局部变量:方法内部创建的变量,可直接使用
  • 静态变量:类中定义的变量。类名.变量名
  • 全局变量:直接使用

继承

继承描述了基类的属性如何‘遗传'给派生类

  1. 子类可以继承他的基类的任何属性,包括数据属性和方法
  2. 一个未指定基类的类,其默认有一个叫object的基类
  3. Python允许多重继承(可以继承多个父类)

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

 类似资料:
  • 本文向大家介绍python getopt详解及简单实例,包括了python getopt详解及简单实例的使用技巧和注意事项,需要的朋友参考一下  python getopt详解 函数原型: 参数解释: args:args为需要解析的参数列表。一般使用sys.argv[1:],这样可以过滤掉第一个参数(ps:第一个参数是脚本的名称,它不应该作为参数进行解析) shortopts:简写参数列表 lon

  • 本文向大家介绍Android Build类的详解及简单实例,包括了Android Build类的详解及简单实例的使用技巧和注意事项,需要的朋友参考一下 Android Build类的详解及简单实例 一、类结构: 二、类概述:从系统属性中提取设备硬件和版本信息。 三、内部类: 1、Build.VERSION 各种版本字符串 2、Build.VERSION_CODES 目前已知的版本代码的枚举类 四、

  • 本文向大家介绍Java Cache详解及简单实现,包括了Java Cache详解及简单实现的使用技巧和注意事项,需要的朋友参考一下  Java Cache详解及简单实现 概要: 最近在做spring的项目,想做一个缓存,访问数据库,定期来做数据更新 要实现两个功能 可以通过http请求来立刻刷新缓存 缓存可以通过自己配置的时间间隔来定期刷新 通过Controller来做 因为需要通过http来刷新

  • 本文向大家介绍Android 中Seekbar详解及简单实例,包括了Android 中Seekbar详解及简单实例的使用技巧和注意事项,需要的朋友参考一下 Android 中Seekbar详解及简单实例 做到音频播放和音乐播放时,大多数都要用到Seekbar。现在我先简单介绍下Seekbar的几个重要属性。 android:max 设置值的大小 . android:thumb=”@drawable

  • 本文向大家介绍SQL GROUP BY 详解及简单实例,包括了SQL GROUP BY 详解及简单实例的使用技巧和注意事项,需要的朋友参考一下  GROUP BY 语句用于结合 Aggregate 函数,根据一个或多个列对结果集进行分组。 SQL GROUP BY 语法  演示数据库 在本教程中,我们将使用众所周知的 Northwind 样本数据库。 下面是选自 "Orders" 表的数据: Or

  • 本文向大家介绍Android  回调详解及简单实例,包括了Android  回调详解及简单实例的使用技巧和注意事项,需要的朋友参考一下 Android  回调 前言: Android中的回调最经典的就是点击事件设置监听(一般通过switch(v.getId()))这里写个最基本的 view对外暴露了一个接口onClick 我们在用的时候实现具体方法写了处理时,当前的Actvity是没有对这个方法做

  • 本文向大家介绍Android中SharedPreference详解及简单实例,包括了Android中SharedPreference详解及简单实例的使用技巧和注意事项,需要的朋友参考一下  Android中SharedPreference详解    SharedPreference是Android提供的一种轻量级的数据存储方式,主要用来存储一些简单的配置信息,例如,默认欢迎语,登录用户名和密码等。

  • 本文向大家介绍AngularJS 模块详解及简单实例,包括了AngularJS 模块详解及简单实例的使用技巧和注意事项,需要的朋友参考一下 AngularJS 模块 模块定义了一个应用程序。 模块是应用程序中不同部分的容器。 模块是应用控制器的容器。 控制器通常属于一个模块。 创建模块 你可以通过 AngularJS 的 angular.module 函数来创建模块: "myApp" 参数对应执行