Python编程基础之构造方法和析构方法详解

目录
  • 一、本讲学习目标
  • 二、构造方法
    • (一)概述
    • (二)案例演示
  • 三、析构方法
    • (一)概述
    • (二)案例演示
  • 四、self的使用
    • (一)self概述
    • (二)案例演示
  • 总结

一、本讲学习目标

1.掌握构造方法的使用

2.掌握析构方法的使用

3.掌握self变量的使用

二、构造方法

(一)概述

  • 构造方法指的是__init__()方法。
  • 当创建类的实例的时候,系统会自动调用构造方法,从而实现对类进行初始化的操作。

(二)案例演示

编写程序 - 演示构造方法.py

构造方法第一个参数 必须是self,表示类的实例,相当于Java类里的this关键字。

构造方法除了self,定义了三个参数,没有设置初值,这样在创建对象时,必须传入三个参数,否则会报错。

运行程序,查看结果

如果创建对象,不传入参数,会报错

怎么避免不传参就要报错的情况呢?很简单,给构造方法的参数设置初值。

运行程序,查看结果

三、析构方法

(一)概述

当删除一个对象来释放类所占用资源的时候,Python解释器默认会调用另外一个方法,这个方法就是__del__( )方法,即析构方法。

(二)案例演示

编写程序 - 演示析构方法.py

运行程序,查看结果

四、self的使用

(一)self概述

在方法的列表中,第1个参数永远都是self。

self的字面意思是自己,类似于Java类里的this变量,表示的是对象自身。

当某个对象调用方法的时候,Python解释器会把这个对象作为第1个参数传给self,开发者只需要传递后面的参数就可以了。

(二)案例演示

编写程序 - 演示self用法.py

运行程序,查看结果

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Python可变集合和不可变集合的构造方法大全

    目录 一.对比数据类型 二.可变集合构造方法 三.不可变集合的构造方法 四.集合构造注意事项  Python集合又是一种新的数据类型,集合有两种形式:可变集合(set())和不可变集合(frozenset())两种,这两种集合操作方法比较类似,但是在底层性质上有截然想法的区别.集合是一种无序的,不重复且不可随机访问的元素集合,在概念和运算上和数学中的集合类似,集合分为可变和不可变两种. 一.对比数据类型 下面是我们学习过的一些数据类型,下面的注释是对比这些数据类型的结果,供学习集合前的参考. s

  • Python析构函数__del__定义原理解析

    析构函数__del__定义:在类里定义,如果不定义,Python 会在后台提供默认析构函数. 析构函数__del__调用: A.使用del 显式的调用析构函数删除对象时:del对象名: class Foo: def __init__(self,x): self.x=x def __del__(self): #在对象资源被释放时触发 print('-----del------') print(self) f=Foo(100000) del f B.当对象在某个作用域中调用完毕,跳出其作用域的同时析

  • Python通用循环的构造方法实例分析

    本文实例讲述了Python通用循环的构造方法.分享给大家供大家参考,具体如下: 1.交互循环 是无限循环的一种,允许用户通过交互的方式程序的特定部分: def main(): sum =0.0 count =0 moredata ='yes' #字符串 while moredata[0] =='y': #获取字符串第一个字符,true执行下面的 x =eval(input('enter a number>>')) sum =sum+x count = count +1 moredata =in

  • 浅谈python3 构造函数和析构函数

    要点: 1.魔法方法,被__双下划线所包围 在适当的时候自动被调用 2.在创建一个对象的时候,一定会调用构造函数 3. del析构函数,在del a对象的时候,并一定会调用该析构函数 只有当该对象的引用计数为0时才会调用析构函数,回收资源 析构函数被python的垃圾回收器销毁的时候调用.当某一个对象没有被引用时,垃圾回收器自动回收资源,调用析构函数 #coding=utf-8 ''' 魔法方法,被__双下划线所包围 在适当的时候自动被调用 ''' #构造init.析构del class Rec

  • python析构函数用法及注意事项

    1.主动删除对象调用del 对象;程序运行结束后,python也会自动进行删除其他的对象. class Animal: def __del__(self): print("销毁对象{0}".format(self)) cat = Animal() cat2 = Animal() del cat2 print("程序结束") 2.如果重写子类的del方法,则必须显式调用父类的del方法,这样才能保证在回收子类对象时,其占用的资源(可能包含继承自父类的部分资源)能被彻底

  • Python编程基础之构造方法和析构方法详解

    目录 一.本讲学习目标 二.构造方法 (一)概述 (二)案例演示 三.析构方法 (一)概述 (二)案例演示 四.self的使用 (一)self概述 (二)案例演示 总结 一.本讲学习目标 1.掌握构造方法的使用 2.掌握析构方法的使用 3.掌握self变量的使用 二.构造方法 (一)概述 构造方法指的是__init__()方法. 当创建类的实例的时候,系统会自动调用构造方法,从而实现对类进行初始化的操作. (二)案例演示 编写程序 - 演示构造方法.py 构造方法第一个参数 必须是self,表示

  • PHP类的声明与实例化及构造方法与析构方法详解

    本文实例讲述了PHP类的声明与实例化及构造方法与析构方法.分享给大家供大家参考,具体如下: <?php class human{ public static $leg=2; public $name = 'leo'; public $age = '25'; public function cry(){ } } $leo = new human(); print_r($leo); /*返回 human Object ( [name] => leo [age] => 25 ) */ //为什

  • PHP面向对象程序设计之构造方法和析构方法详解

    本文实例讲述了PHP面向对象程序设计之构造方法和析构方法.分享给大家供大家参考,具体如下: 构造方法和析构方法是对象中的两个特殊方法,它们都与对象的生命周期有关.构造方法是对象创建完成后第一个被对象自动调用的方法,这是我们在对象中使用构造方法的原因.而析构方法是对象在销毁之前最后一个被对象自动调用的方法,这也是我们在对象中使用析构方法的原因.所以通常使用构造方法完成一些对象的初始化工作,使用析构方法完成一些对象在销毁之前的清理工作. 1.构造方法 在每个声明的类中都有一个呗称为构造方法的特殊成员

  • Python Process创建进程的2种方法详解

    前面介绍了使用 os.fork() 函数实现多进程编程,该方法最明显的缺陷就是不适用于 Windows 系统.本节将介绍一种支持 Python 在 Windows 平台上创建新进程的方法. Python multiprocessing 模块提供了 Process 类,该类可用来在 Windows 平台上创建新进程.和使用 Thread 类创建多线程方法类似,使用 Process 类创建多进程也有以下 2 种方式: 直接创建 Process 类的实例对象,由此就可以创建一个新的进程: 通过继承 P

  • python编程普通及类和静态方法示例详解

    目录 前言 运行环境 普通方法 类方法 静态方法 前言 本文主要讲述了python类中的三类常用方法,普通方法.类方法和静态方法.  本文主要参考了https://youtu.be/rq8cL2XMM5M,强烈推荐一看这个系列的所有视频. 运行环境 import sys sys.version 结果为 '3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)]' 普通方

  • python机器学习基础线性回归与岭回归算法详解

    目录 一.什么是线性回归 1.线性回归简述 2.数组和矩阵 数组 矩阵 3.线性回归的算法 二.权重的求解 1.正规方程 2.梯度下降 三.线性回归案例 1.案例概述 2.数据获取 3.数据分割 4.数据标准化 5.模型训练 6.回归性能评估 7.梯度下降与正规方程区别 四.岭回归Ridge 1.过拟合与欠拟合 2.正则化 一.什么是线性回归 1.线性回归简述 线性回归,是一种趋势,通过这个趋势,我们能预测所需要得到的大致目标值.线性关系在二维中是直线关系,三维中是平面关系. 我们可以使用如下模

  • python 中Mixin混入类的使用方法详解

    目录 前言 Mixin 与继承的区别 总结 前言 最近在看sanic的源码,发现有很多Mixin的类,大概长成这个样子 class BaseSanic(    RouteMixin,    MiddlewareMixin,    ListenerMixin,    ExceptionMixin,    SignalMixin,    metaclass=SanicMeta, ): 于是对于这种 Mixin 研究了一下,其实也没什么新的东西,Mixin 又称混入,只是一种编程思想的体现,但是在使用

  • Python使用Dash开发网页应用的方法详解

    目录 Python Dash开发Web应用的控件基础 一.Dash的布局Layout 1.Dash的HTML组件 2.Dash的Core组件 二.Dash Core中的Checklist Python Dash开发Web应用的控件基础 本文主要是通过Dash的Checklist组件,简单介绍使用Dash开发的Web应用 展示效果如下: python dash简单基础 Dash应用程序由两部分组成: 第一部分是应用程序的布局(Layout),它描述了应用程序的外观. 第二部分描述了应用程序的交互性

  • java并发编程_线程池的使用方法(详解)

    一.任务和执行策略之间的隐性耦合 Executor可以将任务的提交和任务的执行策略解耦 只有任务是同类型的且执行时间差别不大,才能发挥最大性能,否则,如将一些耗时长的任务和耗时短的任务放在一个线程池,除非线程池很大,否则会造成死锁等问题 1.线程饥饿死锁 类似于:将两个任务提交给一个单线程池,且两个任务之间相互依赖,一个任务等待另一个任务,则会发生死锁:表现为池不够 定义:某个任务必须等待池中其他任务的运行结果,有可能发生饥饿死锁 2.线程池大小 注意:线程池的大小还受其他的限制,如其他资源池:

  • python 环境变量和import模块导入方法(详解)

    1.定义 模块:本质就是.py结尾的文件(逻辑上组织python代码)模块的本质就是实现一个功能 文件名就是模块名称 包: 一个有__init__.py的文件夹:用来存放模块文件 2.导入模块 import 模块名 form 模块名 import * from 模块名 import 模块名 as 新名称 3. 导入模块本质 import 模块名 ===> 将模块中所有的数据赋值给模块名,调用时需要模块名.方法名() from 模块名 import 方法名 ==>将该方法单独放到当前文件运行一遍

随机推荐