python获取引用对象的个数方式

可以使用python中的sys模块的getrefcount()方法来获取对象引用的个数。

具体可以看以下的实例:

import sys # 首先导入sys模块

class Dog: # 定义 Dog 类
  pass

dog = Dog() # 创建一个dog对象
print(sys.getrefcount(dog)) # 打印对象的引用个数

输出结果:

>>>PS C:\Users\pierre\Desktop> python .\test.py
>>>2

这里可以看到统计的结果要比实际的引用个数多一个,这是因为getrefcount()方法要接收一个对象的引用作为参数,因此引用个数又增加了一个。

再添加一个指向dog的引用:

import sys

class Dog:
  pass

dog = Dog()
dog2 = dog #添加一个指向dog的引用
print(sys.getrefcount(dog))

输出结果:

>>>PS C:\Users\pierre\Desktop> python .\test.py
>>>3

可以看到引用数多了一个。

以上这篇python获取引用对象的个数方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python3 中作为一等对象的函数解析

    Python3 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被叫做用户自定义函数. 在 Python 语言中,函数与整数.字符串.字典等基本数据类型一样,都是 一等对象 .所谓一等对象,即满足如下三个条件: 在运行时创建 能赋值给变量 能作为函数的参数或返回值 以下 IDLE 中的代码即在运行时创建了函数 factorial : >>

  • python查看模块,对象的函数方法

    这段时间在用libev的python版本事件模型,总共只有一个py.so文件,没有.py文件查看源码查看接口,最开始用shell命令直接查看.so的接口不尽人意.然后发现python提供了查询的接口在代码中可以直接打印出来看. 第一个:dir() 例如查看模块pyev的函数 print dir(pyev) 第二个:__dict__ 例如查看模块pyev和查看pyev中Loop对象的函数 print pyev.__dict__.items() print pyev.Loop.__dict__ 可以

  • 一篇文章搞懂Python的类与对象名称空间

    代码块的分类 python中分几种代码块类型,它们都有自己的作用域,或者说名称空间: 文件或模块整体是一个代码块,名称空间为全局范围 函数代码块,名称空间为函数自身范围,是本地作用域,在全局范围的内层 函数内部可嵌套函数,嵌套函数有更内一层的名称空间 类代码块,名称空间为类自身 类中可定义函数,类中的函数有自己的名称空间,在类的内层 类的实例对象有自己的名称空间,和类的名称空间独立 类可继承父类,可以链接至父类名称空间 正是这一层层隔离又连接的名称空间将变量.类.对象.函数等等都组织起来,使得它

  • python获取引用对象的个数方式

    可以使用python中的sys模块的getrefcount()方法来获取对象引用的个数. 具体可以看以下的实例: import sys # 首先导入sys模块 class Dog: # 定义 Dog 类 pass dog = Dog() # 创建一个dog对象 print(sys.getrefcount(dog)) # 打印对象的引用个数 输出结果: >>>PS C:\Users\pierre\Desktop> python .\test.py >>>2 这里可以

  • 使用Python获取网段IP个数以及地址清单的方法

    使用Python获取网段的IP个数以及地址清单需要用到IPy的库,而相应的方法主要就是IP. 写小脚本如下: from IPy import IP ip = IP('192.168.0.0/16') print(ip.len()) for x in ip: print(x) 运行结果: GreydeMac-mini:01_系统基础信息模块详解 greyzhang$ python ip.py 65536 192.168.0.0 192.168.0.1 192.168.0.2 192.168.0.3

  • 对Python获取屏幕截图的4种方法详解

    Python获取电脑截图有多种方式,具体如下: PIL中的ImageGrab模块 windows API PyQt pyautogui PIL中的ImageGrab模块 import time import numpy as np from PIL import ImageGrab img = ImageGrab.grab(bbox=(100, 161, 1141, 610)) img = np.array(img.getdata(), np.uint8).reshape(img.size[1]

  • Python获取对象属性的几种方式小结

    本文将简单介绍四种获取对象的方法. 假如有以下的类: class Person(object): def __init__(self, name, age): self.name = name self.age = age def __str__(self): return 'name=%s, age=%s' % (self.name, self.age) 方法一:使用属性运算符 print(xmr.name) 方法二:通过属性字典__dict__ print(xmr.__dict__['nam

  • 跟老齐学Python之深入变量和引用对象

    在<永远强大的函数>那一讲中,老齐我已经向看官们简述了一下变量,之后我们就一直在使用变量,每次使用变量,都要有一个操作,就是赋值.本讲再次提及这个两个事情,就是要让看官对变量和赋值有一个知其然和知其所以然的认识.当然,最后能不能达到此目的,主要看我是不是说的通俗易懂了.如果您没有明白,就说明我说的还不够好,可以联系我,我再为您效劳. 变量和对象 在<learning python>那本书里面,作者对变量.对象和引用的关系阐述的非常明了.我这里在很大程度上是受他的启发.感谢作者Mar

  • python计算Content-MD5并获取文件的Content-MD5值方式

    1.首先计算MD5加密的二进制数组(128位),然后再对这个二进制数组进行base64编码(而不是对32位字符串编码). 例如,用Python计算0123456789的Content-MD5,主要代码如下: import base64, hashlib hash = hashlib.md5() hash.update("0123456789") base64.b64encode(hash.digest()) 这样就生成了 'eB5eJF1ptWaXm4bijSPyxw==' 的Cont

  • Python转换字典成为对象,可以用"."方式访问对象属性实例

    我就废话不多说了,大家还是直接看代码吧! database = [ { "name": "18D_Block", "xcc":{ "component": { "core":[], "platform":[] }, }, "uefi":{ "component": { "core":[], "platform"

  • Python获取协程返回值的四种方式详解

    目录 介绍 源码 依次执行结果 介绍 获取协程返回值的四种方式: 1.通过ensure_future获取,本质是future对象中的result方 2.使用loop自带的create_task, 获取返回值 3.使用callback, 一旦await地方的内容运行完,就会运行callback 4.使用partial这个模块向callback函数中传入值 源码 import asyncio from functools import partial async def talk(name): pr

  • python 获取网页编码方式实现代码

    python 获取网页编码方式实现代码 <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">

  • 深入浅析Python获取对象信息的函数type()、isinstance()、dir()

    type()函数: 使用type()函数可以判断对象的类型,如果一个变量指向了函数或类,也可以用type判断. 如: class Student(object): name = 'Student' a = Student() print(type(123)) print(type('abc')) print(type(None)) print(type(abs)) print(type(a)) 运行截图如下: 可以看到返回的是对象的类型. 我们可以在if语句中判断比较两个变量的type类型是否相

随机推荐