方法来打印类的实例的名称
我是新来的班级和写一个执行跟踪和时间任务。 已经看过这个,但仍然有困难让功能的一个方面工作。
以下是我必须证明问题的部分:
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