如何创建类图并编写定义类的伪代码?

2024-10-03 19:22:32 发布

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

我想设计一个名为houses的类,它包含街道地址、要价、房子里的卧室数量和浴室数量。我也希望方法包括获取和设置每个数据字段的值。你知道吗

第一次上课。 我得到了类设置,我可以打印类,但我不知道如何或使用哪些方法。你知道吗

class houses:

    def __init__(self, Adress, Askingprice, NumOfBedrooms, NumofBathroom):
        self.Adress = Adress
        self.Askingprice = Askingprice
        self.NumOfBedrooms = NumOfBedrooms
        self.NumofBathroom = NumofBathroom

    def HouseDetails(self):
        return "The house is at {} with a price of {} and has {} Bedroom/s and {} bathroom/s" \
        .format(self.Adress, self.Askingprice, self.NumOfBedrooms, self.NumofBathroom)


house1 = houses("Almonaster_Avenue87", "R 500k", 1, 1)
house2 = houses("Audubon_Place33", "R 900k", 3, 3)
house3 = houses("Baronne_Street78", "R800k", 3, 2)
house4 = houses("Basin_Street55", "R700k", 2, 1)
house5 = houses("Bayou_Road11", "R 900", 4, 2)
house6 = houses("Bienville_Street78", "R700k", 2, 2)
house7 = houses("Bourbon_Street45", "R 800k", 4, 1)
house8 = houses("Broad_Street56", "R 900k", 5, 3)

print("\n",house1.HouseDetails())

请注意

要价的“R”是我的货币。你知道吗


Tags: and方法self数量defhouseshouse1adress
1条回答
网友
1楼 · 发布于 2024-10-03 19:22:32

如果必须有getter和setter方法,那么这里有一种简洁的方法,可以使用Python的内置^{}类来实现。所示的create_property()实用程序函数是Beazley&Jones(2013)编写的Python食谱第3版中配方9.21的简化版本。你知道吗

def create_property(name):
    """ Utility to define repetitive property methods. """
    storage_name = '_' + name

    @property
    def prop(self):  # getter
        return getattr(self, storage_name)

    @prop.setter
    def prop(self, value):  # setter
        return setattr(self, storage_name, value)

    return prop


class House:
    address = create_property('address')
    asking_price = create_property('asking_price')
    num_bedrooms = create_property('num_bedrooms')
    num_bathrooms = create_property('num_bathrooms')

    def __init__(self, address, asking_price, num_bedrooms, num_bathrooms):
        self.address = address
        self.asking_price = asking_price
        self.num_bedrooms = num_bedrooms
        self.num_bathrooms = num_bathrooms

    def __str__(self):
        return("The house is at {} with a price of {} and has "
               "{} Bedroom/s and {} bathroom/s".format(self.address,
                    self.asking_price, self.num_bedrooms,
                    self.num_bathrooms))


house1 = House("Almonaster Avenue 87", "R 500k", 1, 1)
house2 = House("Audubon Place 33", "R 900k", 3, 3)
house3 = House("Baronne Street 78", "R 800k", 3, 2)
house4 = House("Basin Street 55", "R 700k", 2, 1)
house5 = House("Bayou Road1 1", "R 900", 4, 2)
house6 = House("Bienville Street 78", "R 700k", 2, 2)
house7 = House("Bourbon Street 45", "R 800k", 4, 1)
house8 = House("Broad Street 56", "R 900k", 5, 3)

print(house1)

输出:

The house is at Almonaster Avenue 87 with a price of R 500k and has 1 Bedroom/s and 1 bathroom/s

相关问题 更多 >