python 如何得到类的所有实例

发布网友 发布时间:2022-04-22 05:28

我来回答

5个回答

热心网友 时间:2022-04-18 07:24

实例指的是类进行实例化的对象,就只有一个啊,类中写的方法必须通过实例化才能调用。
class A:
def __init__(self):
pass

def fn1(self):
pass

@classmethod
def fn2(cls):
pass

@staticmethod
def fn3():
pass

def fn4():
pass
以上代码类中有实例方法,类方法,静态方法,和普通方法四种,实例化即是a=A(),a对象我们就称为实例。实例化方法必须实例对象调用a.fn1()。
类方法既可实例对象调用也可类调用,也可类调用a.fn2()或A.fn2()。
静态方法和普通方法在python3中都可直接通过类调用,但是不能通过实例调用否则会报错(因为方法没有入参),即只能A.fn3()和A.fn4()。
以上就是对类,实例和方法等概念的基本介绍。采纳,满分哦!追问但是我做了个类叫class 小飞机(),然后我实例化小飞机1=小飞机()、小飞机2=小飞机()
这时我想让所有的小飞机爆炸,于是我是不是要先得到所有小飞机?
或者说我知道有一个小飞机变量值速度比其他小飞机多100,怎么找到那个小飞机?

热心网友 时间:2022-04-18 08:42

你每声明一个实例的时候,就将这个实例与tpye保存下来。之后你筛选就可以得到这个类的实例了。反正也占不了多少内存。

热心网友 时间:2022-04-18 10:17

import gc
 
class Dog(object):
    def __init__(self, name):
        self.name = name
 
dahuang = Dog('1')
xiao = Dog('2')
 
for obj in gc.get_objects():
    if isinstance(obj, Dog):
        print obj.name

热心网友 时间:2022-04-18 12:08

class A:
     pass
     
     
a1 = A()
a2 = A()
for var in globals().values():
    if type(var) is A:
        print(var)

热心网友 时间:2022-04-18 14:16

代码如下:

class Test(object):

def InstanceFun(self):

print("InstanceFun");

print(self);

@classmethod

def ClassFun(cls):

print("ClassFun");

print(cls);

@staticmethod

def StaticFun():

print("StaticFun");

t = Test();

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com