当前位置:首页 >> 动力

Python 变量、内存和举出计数

来源:动力   2023年03月07日 12:15

中该前方的指称,给我们埋没了 +1 小数。 采用 getrefcount() 相当简单,而且效果良好。 但是,叮嘱就让到每次采用它时都要减去 1 以得到所需的结果。 虽然 getrefcount() 兼职得良好,但如果您就让应对 +1 小数问题,您可以采用另一种方式。 但是,您需要有系统采石场并采用 ctypes 模块。

from ctypes import c_long

# I will create a wrapper function to ease our work.

def ref_count(memory_address: int):

return c_long.from_address(memory_address).value

a = [1, 2, 3]

b = a

c = b

print(ref_count(id(a)))

>>> 3

所以,刚刚再次发生的一定才会很很难掌握。 在第一个下面之中,来自 sysmodule 的 getrefcount(var),我们将基本上表达式传导给变数,然后该变数看做寄存器位址,在指称小数上再降低一个。 因此,在第二个下面之中,来自 ctypes 模块的 c_long.from_address(mem_add),我们传导了表达式的 id,它是对前方的基本上指称。

但叮嘱就让到,一旦小数变为 0,Python 寄存器客户端将释放插座并可能才会将其重新调配给其他好像。 所以,如果你在同一个位址上之后列车运行 ref_count 变数,永远切勿期望看见 0always。 它可能才会被重新调配给其他好像,并且指称小数可能才会是 99342 或其他。 总而言之,在 Python 编程之中,我们从不处置寄存器管理和指称小数,因为 Python 在后台处置它; 但是,有系统了解到直观之中再次发生的一定才会是良好的。

艾得辛和来氟米特哪种药好
盐城看白癜风去哪个医院
广州看白癜风哪家比较好
昆明前列腺炎专业治疗医院
北京治疗白癜风哪家专科医院好
友情链接