在Python中打印类的对象
对象是类的实例。一个类就像一个蓝图,而一个实例是具有实际值的类的副本。当一个类的对象被创建时,该类被称为实例化。所有实例共享类的属性和行为。但是这些属性的值,即状态对于每个对象都是唯一的。一个类可以有任意数量的实例。
Refer to the below articles to get the idea about classes and objects in Python.
- Python Classes and Objects
打印对象为我们提供了有关我们正在使用的对象的信息。在 C++ 中,我们可以通过为类添加一个友ostream&
运算符<<
(ostream&, const Foobar&)
方法来做到这一点。在Java中,我们使用toString()
方法。在Python中,这可以通过使用__repr__
或__str__
方法来实现。如果我们需要详细的调试信息,则使用__repr__
,而__str__
用于为用户打印字符串版本。
例子:
# Python program to demonstrate
# object printing
# Defining a class
class Test:
def __init__(self, a, b):
self.a = a
self.b = b
def __repr__(self):
return "Test a:% s b:% s" % (self.a, self.b)
def __str__(self):
return "From str method of Test: a is % s, " \
"b is % s" % (self.a, self.b)
# Driver Code
t = Test(1234, 5678)
# This calls __str__()
print(t)
# This calls __repr__()
print([t])
输出:
From str method of Test: a is 1234, b is 5678
[Test a:1234 b:5678]
关于印刷的要点:
- 如果没有
__str__
方法, Python使用__repr__
方法。例子:
class Test: def __init__(self, a, b): self.a = a self.b = b def __repr__(self): return "Test a:% s b:% s" % (self.a, self.b) # Driver Code t = Test(1234, 5678) print(t)
输出:
Test a:1234 b:5678
- 如果没有定义 __repr__ 方法,则使用默认值。
例子:
class Test: def __init__(self, a, b): self.a = a self.b = b # Driver Code t = Test(1234, 5678) print(t)
输出:
<__main__.Test object at 0x7f9b5738c550>