0

所以我试图使用类实例来创建一个可以作为远程对象访问的远程数据库。但我的问题很简单,即能够存储对象(具有多个属性)而不是字符串(我目前已经编码)。

所以我有一个自行车仓库,不同的员工可以访问它,以便取走或存放自行车。

from __future__ import print_function
import Pyro4

@Pyro4.expose

class Warehouse(object):
    def __init__(self):
        self.contents = ["bike1", "bike2", "bike3", "bike4", "bike5"]

    def list_contents(self):
        return self.contents

    def take(self, name, bike):
        self.contents.remove(bike)
        print("{0} took the {1}.".format(name, bike))

    def store(self, name, bike):
        self.contents.append(bike)
        print("{0} stored the {1}.".format(name, bike))


def main():
    warehouse = Warehouse()
    Pyro4.Daemon.serveSimple(
        {
            warehouse: "example.warehouse"
        },
        ns=True)


if __name__ == "__main__":
    main()

这就是不同员工访问上述自行车仓库的方式

from __future__ import print_function
import sys

if sys.version_info < (3, 0):
    input = raw_input


class Person(object):
    def __init__(self, name):
        self.name = name

    def visit(self, warehouse):
        print("This is {0}.".format(self.name))
        self.deposit(warehouse)
        self.retrieve(warehouse)
        print("Thank you, come again!")

    def deposit(self, warehouse):
        print("The warehouse contains:", warehouse.list_contents())
        bike = input("Type the bike you want to store (or empty): ").strip()
        if bike:
            warehouse.store(self.name, bike)

    def retrieve(self, warehouse):
        print("The warehouse contains:", warehouse.list_contents())
        bike = input("Type the bike you want to take (or empty): ").strip()
        if bike:
            warehouse.take(self.name, bike)

并且实际访问是通过不同脚本中的几行代码执行的。

  1. 我想要做的是而不是像bike1,bike2等单个字符串实例。我想要并且想要在一个对象中为每个实例输入几个属性,即:

    “自行车,型号,颜色,价格”

稍后这些将按价格范围或型号进行搜索。

  1. 然后我希望能够通过仅指定自行车名称来从仓库中删除自行车(及其所有属性)。

我已经尝试了几件事,但已经挣扎了好几天。

4

0 回答 0