Python 代码输出的含义是什么:
<class 'mediapipe.python.solution_base.SolutionOutputs'>
这是否意味着我们正在打印“mediapipe.python.solution_base.SolutionOutputs”类的对象?我的意思是,例如,如果我声明一个类:
class Apple():
def __init__(self):
self.x = 45
def temp(self):
pass
然后我创建一个这个类的对象,
a = Apple()
然后如果我打印一个,比如
print(a)
我应该得到,
<class 'Apple'>
我会试着举例说明。这是代码:
class Apple():
...
class Banana:
def __str__(self):
return 'I am a banana'
print(Apple()) # p1
print(Apple) # p2
print(Banana()) # p3
print(Banana) # p4
...这是输出:
<__main__.Apple object at 0x10afa4950>
<class '__main__.Apple'>
I am a banana
<class '__main__.Banana'>
如果我们以 python foo.py 的形式运行这个脚本(让我们称之为 foo.py)那么我们的模块(分配给 __name__ 的值)将是 __main__
在 p1 中,我们实例化了一个 Apple 实例。 print() 将尝试找到 __str__ dunder 方法的实现。如果它存在,它将执行它并发出返回值。如果 __str__ 不可用,它将查找 __repr__ 并表现类似。如果两者都不可用,它将显示模块名称、类名称及其 ID。这就是我们在第一行输出中看到的。
在 p2 中,我们正在打印类 - 而不是该类的实例。因此,没有 dunder 方法被调用,我们只是看到它是 __main__ 模块中一个名为 Apple 的类。
在 p3 中,我们正在打印 Banana 类的一个实例,它实现了 __str__ 因此输出“我是香蕉”,如前所述。
在 p4 再次,我们只是打印类,尽管它实现了 __str__ 但这无关紧要,因为它不是该类的实例
用你的
Apple
例子:
class Apple:
pass
a = Apple()
print(a) # printing an instance of a class by using `a.__str__()`
#=> <__main__.Apple object at 0x11b02b6d0>
print(Apple) # printing the class itself
#=> <class '__main__.Apple'>
a.__str__()
默认情况下返回一个带有类的字符串,它是一个对象,以及它存储的内存地址。
是的,没错。输出表明您正在处理 Python
SolutionOutputs
模块中的 mediapipe.python.solution_base
类的对象。
Python中的
class
关键字用于定义一个新的类,你看到的输出是告诉你你正在打印的变量或对象属于那个类。 mediapipe.python.solution_base.SolutionOutputs
类可能定义了一组方法和属性,您可以使用这些方法和属性与对象进行交互和操作。
如果想详细了解
SolutionOutputs
类以及它定义了哪些方法和属性,可以参考mediapipe
库的文档或者直接查阅源码。
当您使用
print()
函数在 Python 中打印对象时,它会显示该对象的字符串表示形式。您从 print(some_object)
看到的输出表示对象的类型 some_object
.
在您的示例输出中
print(some_object)
产生<class 'mediapipe.python.solution_base.SolutionOutputs'>
,这意味着变量some_object
是##Heading ##SolutionOutputs
模块中'mediapipe.python.solution_base'
类的一个实例。
在您的示例代码中,如果您打印
Apple
类的实例,print(a)
不会给您<class 'Apple'>
。相反,你会得到像 <__main__.Apple object at 0x00000123456789AB>
这样的东西,这表明 a 是 Apple
类的一个实例,并显示它存储的内存位置。如果你想打印班级的名字,你可以这样做:
print(type(a).__name__)
这会给你输出
Apple
.