以下关于python变量的描述中错误的是_python-0-测试题

本文介绍了Python内存管理,强调了变量无需先声明和指定类型,以及如何使用`del`释放资源。详细解释了变量的引用计数和垃圾回收机制,通过示例展示了`del`语句的作用。同时,探讨了`__del__`魔法函数在自定义对象清理逻辑中的应用。此外,文章还涉及Python的类型转换函数如`str()`,并讨论了面向对象编程的特性,如类、继承、封装和多态的概念。
摘要由CSDN通过智能技术生成

一、选择题

1、关于python内存管理,下列说法错误的是:(D)

A - 变量不必事先声明

B - 可以使用del释放资源

C - 变量无须指定类型

D - 变量无须先创建和赋值而直接使用

python当中的垃圾回收算法是采用引用计数,

当一个对象的引用计数为0时,

python的垃圾回收机制就会将对象回收:

a = "larry"

b = a

larry这个字符串对下你给,在第一行被贴了a标签后,引用计数为1,

之后第二行,又贴上了b标签,

此时,该字符串对象的引用计数为2

a = 'larry'

b = a

del a

注意:在python语言当中,del语句操作某个对象的时候,并不是直接将该对象在内存当中删除,

而是将该对象的引用计数-1。

a = 'larry'

b = a

del a

>>> id(b)

4572141808

>>> id(a)

>>> NameError: name 'a' is not defined

从以上示例当中可以看出,larry这个字符串对象在第一行被贴上了a标签,

此时字符串的引用计数为1,接着第二行又被贴上了b标签,

此时该字符串对象的引用计数为2,

在第三方中,del语言删除了a变量(标签),

在后续的print中可以看出,内存中实际的字符串对象并没有被删除,

del语句只是删除了一个变量对该字符串对象的引用,

所以,对于larry这个字符串对象来说,效果只是引用计数-1。

魔法函数之__del__

类当中的'del'魔法函数,

支持我们自定义清理对象的逻辑,

当python解释器使用del语言删除类的对象的时候,

会自动调用类中的__del__函数,

我们可以对其进行重载。

class Ref:

def __init__(self,name):

self.name = name

def __del__(self):

print('删除对象')

del self.name

r = Ref(name='larry')

print(r.name)

del r

删除对象。我们可以通过重载__del__魔法函数,

自己灵活控制在del对象的时候执行哪些善后操作。

2 - 可以避免类型错误的函数是(C)

A - type()

B - vars()

C - str()

D - chr()

对于 vars()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值