需要返回匹配的打印显示m

2024-09-29 22:23:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我要把最后一行打印出来的东西还给我。 在底部,我用值调用了类。此外,还欢迎提供改进代码的指针

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()

Tags: selfdefwidthintweabcprintns
1条回答
网友
1楼 · 发布于 2024-09-29 22:23:09

改用__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
    ...

相关问题 更多 >

    热门问题