节点类py

该文章描述了两个Python类的定义,Coordinate类用于处理坐标,接受元组作为输入,并设置维度。Point类继承自Coordinate,增加了父亲点(father)的概念,可以设置坐标和父亲点,并有状态管理功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

class Coordinate:

    def __init__(self, *tupleCoor):
        try:
            # whether void tuple or other
            if type(tupleCoor[0]) == "<class 'tuple'>":
                self.coor = tupleCoor[0]
            else:
                # type of tupleCoor[0] is "<class 'int'>"
                # "(0,)" means a tuple with only one element
                self.coor = (0,) * tupleCoor[0]
        except:
            self.coor = (0,)

        self.dimension = self._statistic_Dimension(self.coor)

    def setCoordinate(self, *tupleCoor):
        try:
            # whether void tuple or other
            if type(tupleCoor[0]) == "<class 'tuple'>":
                self.coor = tupleCoor[0]
            else:
                raise
                # enter "except" block
        except:
            self.coor = (0,) * self.dimension
            # clear tuple

    def _statistic_Dimension(self, tupleCoor):
        try:
            return len(tupleCoor)
        except:
            print("<Coordinate._statistic_Dimension>")
            return 0

class Point(Coordinate):

    def __init__(self, *tupleCoor_pointFather):
        self.coor = tuple()
        self.father = None
        self.state = False

        Coordinate.__init__(*tupleCoor_pointFather[0])
        # set value for "self.coor"

        try:
            if type(tupleCoor_pointFather[1]) == "<class 'Point'>":
                self.father = tupleCoor_pointFather[1]
            else:
                raise
        except:
            self.father = None

    def setCoor(self, tupleCoor):
        self.coor = tupleCoor

    def setFather(self, classPoint):
        self.father = classPoint

    def setState(self,boolState):
        self.state = boolState
        

### 使用 Py2neo 进行图数据库节点操作 #### 创建节点 为了创建新节点,在 Python 中可以通过 `Node` 来定义这些实体,并利用 `graph.create()` 方法将其保存至 Neo4j 数据库中。下面的例子展示了怎样构建几个代表人物角色的节点并存储它们: ```python from py2neo import Graph, Node # 建立与Neo4j服务器之间的连接 graph = Graph("bolt://localhost:7687", auth=("neo4j", "password"))[^1] # 定义三个新的节点对象 alice_node = Node("Person", name="Alice") bob_node = Node("Person", name="Bob") # 向数据库中添加上述两个节点 graph.create(alice_node)[^3] graph.create(bob_node) ``` #### 查询现有节点 当需要检索已存在于图谱内的特定型的节点时,可借助 Cypher 查询语句完成此任务。这里给出了一种方式用来获取所有属于 “Person” 别的记录。 ```cypher MATCH (n:Person) RETURN n; ``` 这段Cypher代码可以直接嵌入到Python脚本里执行: ```python results = graph.run("MATCH (n:Person) RETURN n").data() for record in results: print(record["n"]) ``` #### 更新已有节点属性 如果要修改某个节点上的信息,则先定位该目标节点之后设置其相应字段的新值最后提交更改即可。 ```python person_to_update = list(graph.nodes.match("Person", name="Alice"))[0] if person_to_update is not None: person_to_update['age'] = 30 graph.push(person_to_update) ``` #### 删除指定节点及其关联的关系 对于不再需要的数据项可以选择彻底移除它连同依附于它的边一起清除掉。 ```python node_for_deletion = next(iter(graph.nodes.match("Person", name="Alice")), None) if node_for_deletion is not None: graph.delete(node_for_deletion) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值