在python中,是否可以在类X本身的成员函数中创建类X的对象,并对对象引用进行操作

在python中,是否可以在类X本身的成员函数中创建类X的对象,并对对象引用进行操作,python,class,oop,Python,Class,Oop,假设代码,在类成员函数内部创建对象,然后将其引用指定给全局变量,然后将原始引用指定给其他值 object_list = [] class X: def __init__(self): .... .... def my_method(): obj1 = X() obj2 = X() object_list = [obj1,obj2] obj1 = '' obj2 = ''

假设代码,在类成员函数内部创建对象,然后将其引用指定给全局变量,然后将原始引用指定给其他值

object_list = []
class X:
    def __init__(self):
        ....
        ....
    def my_method():
        obj1 = X()
        obj2 = X()
        object_list = [obj1,obj2]
        obj1 = ''
        obj2 = ''

你是说像这样吗?在类本身中创建实例?这段代码在Python3.4中运行得很好,尽管我不知道这可能会导致未来的后果

class Animal(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def description(self): 
        print (self.name)
        print (self.age)
    def testt(self):
        animo = Animal('johndoe', 5)
        animo.description()

horse = Animal('trevor', 4)
horse.testt()

至少先试着运行它。因为
obj1
obj2
my_方法
的本地名称,所以在将对象放入
object_列表
后如何处理它们并不重要;当
my_method
返回时,它们超出了范围。我尝试了一些错误,与我的问题完全无关,TypeError:get_num()接受0个位置参数,但给出了1,事实上我在调用接受答案的方法中没有提供参数,我声明了一个全局变量a='',然后在类方法内部初始化a=Animal('johndoe',5),a.description()确实在成员函数外部执行是的,这就是我所寻找的,但是在类的成员函数内部创建的对象是否可以在类外部访问,我认为否,因为它是testt函数的本地成员,但是如果它的引用被分配给一个全局变量,那么它可以在类测试之外被访问吗?当一个全局变量被分配一个引用时,它确实起作用,但我想进一步了解的是,当父对象被垃圾收集器销毁时,子对象也会被销毁吗?Python中的对象既不是全局对象,也不是局部对象,只有引用它们的名称才是全局对象。同样,引用计数不区分本地引用和全局引用。只要您不尝试在
\uuuu init\uuuu
中创建相同类型的对象(这将导致无限循环!),就没有理由不能创建相同类的对象。人们总是这样做,例如
类向量:def\uu add\uu(self,other):返回向量(self.x+other.x,self.y+other.y)