首页 > 编程语言 >Python基础入门学习笔记 041 魔法方法:构造和析构

Python基础入门学习笔记 041 魔法方法:构造和析构

时间:2023-08-23 10:55:35浏览次数:45  
标签:__ ... 调用 Python self init del 和析构 041

 __init__(self[, ...]) 方法是类在实例化成对象的时候首先会调用的一个方法

 1 >>> class Rectangle:
 2     def __init__(self,x,y):
 3         self.x = x
 4         self.y = y
 5     def getPeri(self):
 6         return (self.x + self.y) * 2
 7     def getArea(self):
 8         return self.x * self.y
 9 >>> rect = Rectangle(5,2)
10 >>> rect.getPeri()
11 14
12 >>> rect.getArea()
13 10

注:__init__()方法的返回值一定是None 

其实,__new__()才是在一个对象实例化时候所调用的第一个方法,它的第一个参数是这个类(cla),而其他的参数会直接传递给__init__()方法

__new__(cls[, ...])

1 >>> class CapStr(str):
2     def __new__(cls,string):
3         string = string.upper()
4         return str.__new__(cls,string)
5 
6     
7 >>> a = CapStr('hello world')
8 >>> a
9 'HELLO WORLD

__del__(self)  当对象将要被销毁的时候,这个方法就会被调用。但要注意,并非del x就相当于调用x.__del__(),__del__()方法是当垃圾回收机制回收这个对象的时候才调用的。

 1 >>> class C:
 2     def __init__(self):
 3         print('我是__init__方法,我被调用了...')
 4     def __del__(self):
 5         print('我是__del__方法,我被调用l...')
 6 
 7         
 8 >>> c1 = C()     #创建对象c1
 9 我是__init__方法,我被调用了...
10 >>> c2 = c1
11 >>> c3 = c2
12 >>> del c1
13 >>> del c2
14 >>> del c3   #删除c3时,对象c1才会彻底被删除(即没有标签指向对象c1时,其才会被回收)
15 我是__del__方法,我被调用l...

 

标签:__,...,调用,Python,self,init,del,和析构,041
From: https://www.cnblogs.com/ybqjymy/p/17650608.html

相关文章

  • Python基础入门学习笔记 038 类和对象:继承
    继承         子类               父类class DerivedClassName(BaseClassName):……实例:一个子类可以继承它的父类的所有属性和方法1>>>classParent:2defhello(self):3print('正在调用父类的方法......
  • Python基础入门学习笔记 036 类和对象:给大家介绍对象
    给大家介绍对象把乱七八糟的数据扔进列表里,称数据层面的封装把常用的代码段打包成一个函数,称语句层面的封装把数据和代码都封装在一起,称对象层面的封装对象 = 属性 + 方法对象可以从静态(属性)与动态(方法)两个特征来描述 OO(面向对象)的特征继承class Turtle:#Pytho......
  • Python基础入门学习笔记 037 类和对象:面向对象编程
    self是什么?Python的self其实就相当于C++的this指针。由同一个类可以生产无数对象,当一个对象的方法被调用的时候,对象会将自身的引用作为第一个参数传给该方法,那么python就知道需要操作哪个对象的方法了。1>>>classBall:2defsetName(self,name):3self......
  • Python基础入门学习笔记 032 异常处理:你不可能总是对的
    实例1:1file_name=input('请输入需要打开的文件名:')2file=open(file_name)3print('文件的内容是:')4foreach_lineinfile:5print(each_line)6file.close() Python标准异常总结 以下是Python内置异常类的层次结构:......
  • Python基础入门学习笔记 033 异常处理:你不可能总是对的2
    try-except语句try:  检测范围exceptException[asreason]:  出现异常(Exception)后的处理代码实例1:1try:2f=open('TE.txt')3print(f.read())4f.close()5exceptOSError:6print('文件打开过程中出错了!!!')实例2:1try:2f=open(......
  • Python基础入门学习笔记 034 丰富的else语句及简洁的with语句
    丰富的else语句•要么怎样,要么不怎样if条件:  条件为真执行else:  条件为假执行    •干完了能怎样,干不完就别想怎样实例1:1defshowMaxFactor(num):2count=num//2#//为整除,判断是素数,只需依次判断当前数num除以1到(num//2)都不能整除即可3......
  • Python基础入门学习笔记 027 集合:在我的世界里,你就是唯一
    字典的表亲--集合(在python3中,如果用大括号括起一堆数字但没有体现映射关系,那么就会认为这堆玩意儿就是个集合)1>>>num1={}2>>>type(num1)3<class'dict'>4>>>num2={1,3,4}5>>>type(num2)6<class'set'>集合中的元素都是唯一的(集合会自动帮我们把......
  • Python基础入门学习笔记 028 文件:因为懂你,所以永恒
    大多数u程序都是:首先接收输入数据,然后按照要求进行处理,最后输出数据 虽然当前数据放在内存中存取的速度要比硬盘中快,但一旦断电则会丢失,所以尽量ctrl+s保持到硬盘中 什么是文件打开文件1open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,......
  • Python基础入门学习笔记 029 文件:一个任务
    •任务:将文件(record.txt)中的数据进行分割并按照以下规律保存起来:–小甲鱼的对话单独保存为boy_*.txt的文件(去掉“小甲鱼:”)–小客服的对话单独保存为girl_*.txt的文件(去掉“小客服:”)–文件中总共有三段对话,分别保存为boy_1.txt,girl_1.txt,boy_2.txt,girl_2.txt,boy_3.txt,......
  • Python基础入门学习笔记 030 文件系统:介绍一个高大上的东西
    os模块中关于文件/目录常用的函数使用方法>>>importos>>>os.getcwd()'D:\\python3.3.2\\小甲鱼python\\python程序\\第二十九课'>>>os.listdir('D:\\python3.3.2\\小甲鱼python\\python程序\\第二十九课')['boy_1.txt','boy_2......