方法来打印类的实例的名称

我是新来的班级和写一个执行跟踪和时间任务。 已经看过这个,但仍然有困难让功能的一个方面工作。

以下是我必须证明问题的部分:

class seperate_trackers():

    def __init__(self): 
        print ("class initiated")

    def print_instance_name(self):
        print (self.__class__.__name__)

创建它的一个实例:

track_task1 = separate_trackers()
>> class initiated

在那里运行该方法:

track_task1.print_instance_name()
>> separate_trackers

这不是我想要的!

如何修复该方法,以便在运行时返回track_task1


这不是一个好主意。 如果你想让你的实例有一个名字,那么它应该是实例本身的一个属性(变量的名字只是一个指针,它不应该代表对象的状态)。

试试这个:

# We don't usually use snake case for class names in python (and its 'separate')
class SeparateTrackers():

    def __init__(self, name): 
        self.name = name


instance1 = SeparateTrackers("instance_name")

print(instance1.name) # instance_name

对象不知道哪些变量引用了它们。 可以有任意数量的对象引用,并且它们中没有一个是“真实的”,它们都与对象的名称一样有效。 此外,可能没有引用是简单的名称:

things = [1, "hello", separate_trackers(), 3.14]

没有有用的方法来找出什么变量引用一个对象。


class SeparateTrackers:
  def __init__(self, instance_name):
    self.instance_name = instance_name

  def __str__(self):
    return self.instance_name

所以你可以使用类似的东西

a = SeparateTracker("first instance")
print(a) # print instance's name
链接地址: http://www.djcxy.com/p/40949.html

上一篇: method to print name of an instance of a class

下一篇: How do I get the name from a named tuple in python?