我需要回来给出最后一条打印线给我的东西。 在底部我调用了带有值的类。此外,欢迎使用指针来改进代码。
class Building:
def __init__(self, south, west, width_WE, width_NS, height=10):
# making variables non-local
self.south=int(south)
self.west=int(west)
self.width_WE=int(width_WE)
self.width_NS=int(width_NS)
self.height=height
self.d={}
self.d['north-east']=(south+width_NS,west+width_WE)
self.d['south-east']=(south,west+width_WE)
self.d['south-west']=(south,west)
self.d['north-west']=(south+width_NS,west)
self.wwe=width_WE
self.wns=width_NS
self.height=10
def corner(self): # gives co-ordinates of the corners
print(self.d)
def area (self): # gives area
print(self.wwe*self.wns)
return(self.wwe*self.wns)
def volume(self): #gives volume
print(self.wwe*self.wns*self.height)
def __repr__(self): # I dont know what to call it but answer should be''Building(10, 10, 1, 2, 2)''
print ("Building(%s,%s,%s,%s,%s)"%(self.south, self.west, self.width_WE, self.width_NS,"10"))
#return ("Building(%s,%s,%s,%s,%s)"%(self.south, self.west, self.width_WE, self.width_NS,"10"))
abc = Building(10, 10, 1, 2, 2)
abc.corner()
abc.area()
abc.volume()
答案 0 :(得分:1)
改为使用__str__
:
def __str__(self):
return "Building({0},{1},{2},{3},{4})".format(self.south, self.west, self.width_WE, self.width_NS,"10")
def __repr__(self):
__str__()
如果您要将height
作为参数传递,那么您可能不应该明确地设置 ...
self.height=10
...
:
...
self.height=height
...
应阅读:
day