python 类详解及简单实例

作者:root贵族 时间:2023-05-17 17:17:32 

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允许多重继承(可以继承多个父类)

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

来源:http://www.jianshu.com/p/3c958b309e1a

标签:python,类
0
投稿

猜你喜欢

  • 一个超级简单的python web程序

    2021-11-19 18:05:06
  • asp如何将产生的密码记录并发送给用户?

    2009-11-26 20:50:00
  • js页面跳转常用的几种方式

    2023-08-07 08:30:27
  • Go gRPC进阶教程gRPC转换HTTP

    2024-05-21 10:25:57
  • 如何用Sleep函数编译一个定时组件?

    2010-06-13 14:35:00
  • Linux下远程连接Jupyter+pyspark部署教程

    2021-03-31 18:35:59
  • TensorFlow利用saver保存和提取参数的实例

    2022-03-31 16:27:15
  • python中break、continue 、exit() 、pass终止循环的区别详解

    2023-03-08 15:59:52
  • 如何确定Oracle数据库表重复的记录

    2010-07-26 13:23:00
  • DreamweaverMX2004技巧两则

    2010-09-05 21:10:00
  • 用PHP编写每周签到功能以提高用户参与度

    2023-05-27 17:24:54
  • Python提示[Errno 32]Broken pipe导致线程crash错误解决方法

    2022-12-02 02:20:42
  • 详解MySql存储过程参数的入门使用

    2024-01-25 23:24:06
  • PHP实现断点续传乱序合并文件的方法

    2023-06-20 02:35:21
  • 如何做迅雷电影提示效果

    2011-03-31 17:15:00
  • 详解python调用cmd命令三种方法

    2022-05-09 09:01:21
  • python神经网络InceptionV3模型复现详解

    2021-05-29 16:53:01
  • Python基于yield遍历多个可迭代对象

    2023-01-05 23:01:32
  • Go语言流程控制之goto语句与无限循环

    2023-08-31 06:43:00
  • js实现axios限制请求队列

    2024-05-10 13:59:31
  • asp之家 网络编程 m.aspxhome.com