类中的直接打印-python
我是新来的“课堂”方法,如果有人感到不满,我很抱歉。很多人都知道这个例子:类中的直接打印-python,python,Python,我是新来的“课堂”方法,如果有人感到不满,我很抱歉。很多人都知道这个例子: class Rectangle: def __init__(self, length, breadth, unit_cost=0): self.length = length self.breadth = breadth self.unit_cost = unit_cost def get_perimeter(self): return 2
class Rectangle:
def __init__(self, length, breadth, unit_cost=0):
self.length = length
self.breadth = breadth
self.unit_cost = unit_cost
def get_perimeter(self):
return 2 * (self.length + self.breadth)
def get_area(self):
return self.length * self.breadth
def calculate_cost(self):
area = self.get_area()
return area * self.unit_cost
现在,为了获取信息,我们需要执行以下操作:
r = Rectangle(160, 120, 2000)
print("Area of Rectangle: %s cm^2" % (r.get_area()))
print("Cost of rectangular field: Rs. %s " %(r.calculate_cost()))
结果:
- 矩形面积:19200厘米^2
- 矩形场地成本:38400000卢比
Rectangle(160, 120, 2000)
现在就得到答案:
- 矩形面积:19200厘米^2
- 矩形场地成本:38400000卢比
谢谢你的帮助 如果将在
print
语句中编写的代码实现为class\uuuu str\uuu
方法,则可以通过打印类本身来获得该结果:
class Rectangle:
def __init__(self, length, breadth, unit_cost=0):
self.length = length
self.breadth = breadth
self.unit_cost = unit_cost
def __str__(self):
return "Area of Rectangle: %s cm^2\nCost of rectangular field: Rs. %s " % (self.get_area(), self.calculate_cost())
def get_perimeter(self):
return 2 * (self.length + self.breadth)
def get_area(self):
return self.length * self.breadth
def calculate_cost(self):
area = self.get_area()
return area * self.unit_cost
以及输出:
>>> print(Rectangle(160, 120, 2000))
Area of Rectangle: 19200 cm^2
Cost of rectangular field: Rs. 38400000
这是一个比向
\uuuu init\uuuu
添加print
语句更好的设计决策,因为在矩形()调用周围添加print
语句相对轻松,而且它更灵活,因为您仍然可以选择是否显示输出。如果您将在print
语句中编写的代码实现为class\uuu str\uuu
方法,您将通过打印类本身获得该结果:
class Rectangle:
def __init__(self, length, breadth, unit_cost=0):
self.length = length
self.breadth = breadth
self.unit_cost = unit_cost
def __str__(self):
return "Area of Rectangle: %s cm^2\nCost of rectangular field: Rs. %s " % (self.get_area(), self.calculate_cost())
def get_perimeter(self):
return 2 * (self.length + self.breadth)
def get_area(self):
return self.length * self.breadth
def calculate_cost(self):
area = self.get_area()
return area * self.unit_cost
以及输出:
>>> print(Rectangle(160, 120, 2000))
Area of Rectangle: 19200 cm^2
Cost of rectangular field: Rs. 38400000
这是一个比向\uuuu init\uuuu
添加print
语句更好的设计决策,因为在矩形()调用周围添加print
语句相对轻松,而且它更灵活,因为您仍然可以选择是否要显示输出。使用\uuuuu repr\uuuu
来制作类的可打印表示,然后从\uu init\uuuu
中添加打印语句,如果您想避免在类之外使用打印(您可以将此选项设置为可选)
输出:
r=矩形(1601202000)
使用\uuuu repr\uuuuu
制作类的可打印表示,然后在\uuuuu init\uuuuuu
中添加一条打印语句,如果您希望避免在类之外使用打印(您可以将此设置为可选)
输出:
r=矩形(1601202000)
您可以尝试调用\uuuu init\uuuu()
方法中涉及的函数,然后在那里打印结果。当您创建一个新的矩形
实例时,它应该会给您结果。您可以尝试调用\uuuu init\uuuu()
方法中涉及的函数,然后在那里打印结果。当您创建一个新的Rectangle
实例时,它应该会立即给出结果。效果很好,但我只希望这个结果不打印。在这种情况下,只需添加行print(“矩形区域:%s cm^2\n矩形域的成本:Rs.%s”%(self.get\u Area(),self.calculate\u cost())
到\uuuu init\uuu
方法。但请记住我的最后一段。请记住,行为会有所不同,这取决于您是否将对象分配给变量:r=Rectangle(160,120,2000),或者直接创建对象:Rectangle(160,120,2000)效果很好,但我只希望此结果不打印在这种情况下,只需添加行print即可(“矩形面积:%s cm^2\n矩形域的成本:Rs.%s”%(self.get\u Area(),self.calculate\u cost())
到\uuu init\uuuuu
方法。但请记住我的最后一段。请记住,行为将根据是否将对象分配给变量而有所不同:r=Rectangle(1601202000),或直接创建对象:矩形(1601202000)