我只是在学习python,并在此过程中编写简单的代码。
重写派生类中的print方法,是否可以在同一行中打印两个类,而不更改基类?
i、 我想要pointA.print()
打印
“x = 10 and y = 10 and z = 10
”;不是x = 10 and y = 10 and z = 10
我知道在C#中,这很容易做到,因为WriteLine
方法以新行开始(而不是以新行结束),因此Write方法实现了我所期望的
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def print(self):
print(f"x = {self.x} and y = {self.y}")
class PointWithZAxis(Point):
def __init__(self, x, y, z):
Point.__init__(self, x, y)
self.z = z
def print(self):
Point.print(self)
print(f"and z = {self.z}")
pointA = PointWithZAxis(10, 10, 10)
pointA.print()
将
end
参数添加到print函数可以指定print
语句的结尾,因此:默认情况下,它被设置为
end='\n'
,这表示新行注意命名函数
print
时要小心,因为它们隐藏了已有的函数,可能会引起混淆将父类中的打印更改为:
顺便说一句,我认为覆盖类的
__str__
方法比创建print()
方法更干净。打印对象时会自动调用对象的__str__
方法(如:print(object))。然后,代码变为:您可以将end=”“添加到打印
相关问题 更多 >
编程相关推荐