我是新手并编写一个来执行跟踪和计时任务。看过this但仍然无法使功能的一个方面起作用。
以下是我要证明问题的部分:
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
?
答案 0 :(得分:3)
这不是一个好主意。如果你希望你的实例有一个名字,那应该是实例本身的一个属性(变量的名称只是一个指针,它不应该代表对象的状态)。
请改为尝试:
# 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
答案 1 :(得分:1)
对象不知道哪些变量引用它们。可以有任意数量的对象引用,并且它们都不是#34;真正的对象,"它们都与对象的名称一样有效。此外,可能没有简单名称的引用:
tf.reduce_any
没有什么有用的方法可以找出哪些变量引用了一个对象。
答案 2 :(得分:1)
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