腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
2
回答
如何确保在
Python
类上按通常(但不正确)所期望的那样调用__del__函数?
、
、
我理解
Python
类的__del__函数:作为
析
构
函数。 我也明白,有更多的‘琵琶’和可以说更优雅的方式来整理,特别是使用。然而,当编写可能被不太精通pythonic方式的用户使用的代码时,当清理非常重要时,是否有一种优雅的
方法
可以让__del__可靠地作为
析
构
函数工作,而不影响
python
对__del__的自然使用?对于__del__作为
析
构
函数的行为的期望似乎并不不合理,同时也很普遍。因此,我只是想知道是否有一个优雅的
方法
浏览 2
提问于2018-07-25
得票数 4
回答已采纳
3
回答
C++销毁顺序:在类
析
构
函数之前调用字段
析
构
函数
、
、
有
方法
在类
析
构
函数之前调用字段
析
构
函数吗?:Small destructor 我需要在Small
析
构
函数之前调用Big
析
构
函数,因为它为Big
析
构
函数做了一些必要的清理。~Small()
析
构
函数。但是,->这会调用Small
析
构
函数两次:一次显式调用,一次在执行Big
析
<e
浏览 5
提问于2017-07-26
得票数 6
回答已采纳
1
回答
Python
C++中
析
构
函数之间的区别
、
、
C++
析
构
函数和
Python
析
构
函数的契约有何不同,特别是在对象生命周期和资源回收时?我还没有找到一个全面的并排比较。 我认为C++
析
构
函数所做的是完全释放对象所持有的内存。
Python
取消对象,但它仍然保留在缓存内存中(称为垃圾收集),然后在程序完成后完全释放内存。
浏览 9
提问于2022-05-02
得票数 -1
回答已采纳
16
回答
如果不应该在
析
构
函数中抛出异常,如何处理其中的错误?
、
、
、
大多数人说,永远不要从
析
构
函数中抛出异常,这样做会导致未定义的行为。Stroustrup指出,“向量
析
构
函数显式地为每个元素调用
析
构
函数。这意味着如果一个元素
析
构
函数抛出,向量销毁就会失败……实际上没有什么好的
方法
来防止从
析
构
函数引发的异常,因此库无法保证元素
析
构
函数抛出时是否会抛出”(参见附录E3.2)。似乎不是这样说的--抛出
析
构</
浏览 41
提问于2008-09-24
得票数 298
回答已采纳
2
回答
C++是否可以使
析
构
函数不调用类成员的
析
构
函数和基类的
析
构
函数?
是否有一种
方法
可以使类的
析
构
函数不调用某个类成员的
析
构
函数和/或不调用其基类的
析
构
函数? 如果这是不可能的,是否手动创建具有新位置和
析
构
(/不-
析
构
)的类成员是可能的解决办法?谢谢!编辑:我需要这样做的原因:C类拥有对象M有一个非平凡的
析
构
函数。C是M的朋友,以一种不需要调用M的
析
构
函数的方式来管理M。调用它
浏览 0
提问于2017-05-30
得票数 0
回答已采纳
1
回答
C++
析
构
函数调用boost::
Python
包装对象
、
、
在调用包装对象的C++
析
构
函数时,考虑到达到对应
python
对象的零引用计数的时刻,
python
提供了任何保证吗? 我担心的是一个C++对象,它打开一个用于写入的文件,并在其
析
构
函数中执行文件关闭。当所有对对象的
python
引用都被删除或超出作用域时,是否保证了文件被写入?我的经验表明,在这一点上总是调用
析
构
函数,但找不到任何保证。
浏览 5
提问于2016-07-06
得票数 2
回答已采纳
2
回答
C++:调用临时对象的构造函数
、
假设我有以下内容: SomeClass();} 在没有优化的情况下,将调用SomeClass()构造函数,然后调用其
析
构
函数,对象将不再存在然而,根据IRC通道,如果编译器认为SomeClass构造函数/
析
构
函数没有副作用,那么构造函数/
析
构
函数调用可能会被优化掉。我认为最明显的
方法
是不使用构造函数/
析
构
函数(例如使用函数或静态
方法<
浏览 4
提问于2011-11-28
得票数 4
回答已采纳
1
回答
Python
类
析
构
函数是否保证在程序结束前执行?
我们可以强制使用del执行
析
构
函数,通常只是让垃圾收集器完成它的工作,但是如果我们在
Python
中定义类
析
构
函数,它是否保证对实例化的每个对象执行?
浏览 4
提问于2020-08-07
得票数 4
回答已采纳
3
回答
销毁二叉树中的节点
、
、
我使用new创建节点,但现在我想在
析
构
函数中删除它们: if (node !leftTree); delete node; }我在
析
构
函数中使用了这个
方法
BinaryTree::~BinaryTree(){ recu
浏览 7
提问于2021-04-17
得票数 0
回答已采纳
1
回答
非多态和非抽象基类中的虚拟
析
构
函数
、
、
我正在编写一个c++类,它将与
python
进行接口。我没有为这个类添加
析
构
函数,因为我很困惑。在我所读到的关于基类
析
构
函数的所有文章中,它们都建议
析
构
函数应该是公共的、虚拟的或受保护的。由于我不打算在c++代码或
python
接口中多形性地使用上述类,所以真的需要将
析
构
函数变成公共的、虚拟的还是受保护的呢?我想让这个类公开,这样程序员就不会知道如何从形式上使用这个类。我的想法正确吗?
浏览 7
提问于2014-01-31
得票数 1
回答已采纳
3
回答
是否优化了空
析
构
函数?
据我所知,空
方法
是编译的,但实际上并不称为:。 这是否意味着在使用空
析
构
函数时,仍将在Finalize队列中创建条目,但JIT将阻止调用该
方法
?
浏览 4
提问于2011-06-09
得票数 2
回答已采纳
1
回答
Python
静态变量释放
、
、
下面的
python
静态类变量什么时候被垃圾回收?我期望看到来自静态变量foo
析
构
函数的消息。print "Bar init running" print "Destructor Bar" 输出为(
Python
浏览 4
提问于2015-10-09
得票数 6
1
回答
在del
方法
中找不到
Python
的datetime模块
、
、
为什么导入的模块在
Python
析
构
函数(__del__
方法
)中不可用?它能通过某种方式提供吗?datetime.now() self.end = datetime.now() datetime在构造函数中可用,而在调用
析
构
函数时不可用也许模块现在已经清理完毕了,但是有什么
方法
可以确保datetime仍然可用呢?
浏览 1
提问于2021-09-15
得票数 1
回答已采纳
1
回答
__init__中的成员分配和引用计数
、
我正在为
Python
编写一个C扩展,通过,我很难理解__init__函数中的成员分配。它可能有一个
析
构
函数,该
析
构
函数导致代码被执行,试图访问第一个成员;或者,该
析
构
函数可以释放全局解释器锁,并允许任意代码在访问和修改我们的对象的其他线程中运行。我理解在这样的情况下,如果
析
构
函数释放全局解释器锁,存在一个悬空指针,并且可以修改我的对象(self),等等.一切都失控了。 但是为什么这是
析
构
函数访问它的
浏览 2
提问于2019-09-03
得票数 2
回答已采纳
1
回答
F2py编译的Fortran模块中的垃圾收集
、
、
背景 我目前正在编写一个有限元程序,主要是用
Python
编写的(为了方便),它使用Fortran子程序的几个模块来执行一些无法避免的任务(即装配/更新切线刚度矩阵)。这是使用f2py ()成功编译的,生成的.dll文件在
python
脚本中作为
python
模块导入。然后,
Python
可以成功地调用函数/子程序。全局变量被直接从
Python
脚本中分配为具有正确类型的F-连续numpy数组(可能是糟糕的样式,但它适用于我)。--它们可以是相对较大的数组,我希望确保在成功完成
pytho
浏览 3
提问于2019-11-04
得票数 0
回答已采纳
2
回答
在失败的构造和销毁之间实现C++代码重用
它们在构造函数中分配,并根据RAII模式在
析
构
函数中释放。然而,分配不是原子的,如果构造函数的后期阶段失败,在向调用方抛出异常之前,有必要释放在早期阶段分配的所有资源。越来越多,这种边缘情况代码开始类似于
析
构
函数本身。我知道C++类能够调用它自己的
析
构
函数,而且因为
析
构
函数是用来处理移动操作留下的僵尸状态的实例,所以
析
构
函数在尝试释放它们之前已经检查了资源是否被实际分配了。那么,如果一个类在构造失败的情况下调用它的<
浏览 0
提问于2015-11-16
得票数 0
6
回答
Visual C#中没有
析
构
函数吗?
、
、
据我所知,C#中的
析
构
函数语法(~ClassName)是一种编写终结器的
方法
。此
方法
在编译为IL后成为Finalize
方法
。因此,这意味着C#编程语言确实支持
析
构
函数,但是作为.net框架的一部分,Visual C#不允许程序员使用它。 编辑:我知道可以使用IDisposable接口来清理非托管资源。问题不在于此。问题是Visual C#中是否有
析
构
函数?因为
析
构
函数的语法是一种编写终结器=>
浏览 5
提问于2011-05-05
得票数 0
回答已采纳
2
回答
析
构
与巨蟒
、
、
、
我使用boost::
python
将其导出到
python
中。但是虚拟破坏者呢?任何基类都应该有虚拟
析
构
函数,以避免错误的内存释放,对吗?我忘记了这一点,写了Base而没有
析
构
函数。现在我补充说:{ virtual ~Base();}; 在
python
中导入我的模块之后,而且,据我所知,错误是由于py-模块缺少
析
构</
浏览 0
提问于2011-04-11
得票数 1
回答已采纳
5
回答
为什么垃圾收集器以错误的顺序获取对象?
、
、
这两个类的
析
构
函数会对资源进行一些清理,但它们必须按正确的顺序调用,首先是A的
析
构
函数,然后是B的
析
构
函数。发生的事情是,B的
析
构
函数首先被调用,然后A的
析
构
函数崩溃,因为它试图从一个已释放的对象执行
方法
。 GC的这一行为是否正确?我希望GC检测到A引用了B,然后首先调用A
析
构
函数。我说的对吗?PD:如果对
析
构
函数/终
浏览 3
提问于2010-11-12
得票数 6
回答已采纳
2
回答
这个单链接的列表
析
构
函数是如何导致无限循环的?
、
、
、
我理解,如果struct定义是类的一部分,比方说ListManager,那么调用ListManager实例上的
析
构
函数只需要迭代由类管理的链接列表并删除每个节点。但是,由于这个链接列表不是外部类的一部分,并且管理所有操作本身,所以我对如何编写
析
构
函数感到有点困惑。版本2导致无限循环。我不明白为什么,因为这是我为管理Node链接列表的容器类实现
析
构
函数的一种
方法
。我运
浏览 0
提问于2018-12-14
得票数 1
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
虚析构与纯虚析构(C+)
PHP就业快学课堂10,构造方法与析构方法
成都兄弟连最新PHP视频教程—PHP析构方法
成都兄弟连最新PHP视频教程—PHP析构方法回顾
当对象释放时,避免析构函数调用两次
热门
标签
更多标签
云服务器
ICP备案
实时音视频
即时通信 IM
对象存储
活动推荐
运营活动
广告
关闭
领券