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

Python 如何创建类图并编写定义类的伪代码?,python,python-3.x,class,Python,Python 3.x,Class,我想设计一个名为houses的类,它包含街道地址、要价、房间数量和房子中浴室数量。我还希望包括获取和设置每个数据字段值的方法 第一次上课。 我得到了类设置,我能够打印类,但我不确定如何使用或使用哪些方法 class houses: def __init__(self, Adress, Askingprice, NumOfBedrooms, NumofBathroom): self.Adress = Adress self.Askingprice = As

我想设计一个名为
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”是我的货币。

如果必须有getter和setter方法,这里有一种使用Python内置类的简洁方法。所示的
create_property()
实用程序函数是Beazley&Jones(2013)出版的Python烹饪书第三版中配方9.21的简化版本

输出:

这所房子位于阿尔莫纳斯特大道87号,价格为500k南非兰特,有一间卧室和一间浴室

试着把你的问题分成几个小部分,然后逐一解决。如果要编写get和set方法。然而,请注意,这对于Python代码来说是非常罕见的,并且可能不是您想要的。您总是可以直接访问对象属性。“我还希望包含用于获取和设置每个数据字段值的方法。”不!这不是Java!我们不做接球手和二传手!我会考虑重命名<代码>家庭细节>代码> <代码> Aran Fey > />代码>,以便在你做<代码> STR(HouthSub实例)< /代码>时调用它。@我不确定你是否讽刺,如果你真的认真。就像我第一次上课时说的。甚至不确定它在python中是否可行。@Fons最好的语言是什么?
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)