首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >GraphObject在py2neo.ogm中的动态特性

GraphObject在py2neo.ogm中的动态特性
EN

Stack Overflow用户
提问于 2019-07-12 03:12:52
回答 1查看 260关注 0票数 2

使用py2neo的ogm模块,您可以为neo4j中的节点构建对象:

代码语言:javascript
运行
AI代码解释
复制
class Person(GraphObject):
    __primarykey__ = 'name'

    name = Property()

    def __init__(self, name):
        self.name = name


peter = Person('peter')

graph.create(peter)

是否可以向Person对象添加动态属性?

代码语言:javascript
运行
AI代码解释
复制
peter = Person('peter')

# this does not work
peter.last_name = 'jackson'

graph.create(peter)

首先创建一个节点并在后面添加属性是可能的,但是使用动态属性创建GraphObjects会更容易。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-26 06:56:51

我想出了一个用暴力解决这个问题的方法:

取出对象的类,将新属性中的新属性敲打到类中,并在它意识到刚刚发生的事情之前将其填充回对象中:D

代码语言:javascript
运行
AI代码解释
复制
from py2neo.ogm import GraphObject, Property
from py2neo import Graph

class Person(GraphObject):
    __primarykey__ = "name"

    name = Property()

    def __init__(self, name):
        self.name = name

    def add_new_property(self, name, value):
        self.__class__ = type(
            type(self).__name__, (self.__class__,), {name: Property()}
        )
        setattr(self, name, value)


peter = Person("peter")
peter.add_new_property("lastname", "jackson")


g = Graph(host="localhost", user="neo4j", password="neo4j")
tx = g.begin()
tx.merge(peter)
tx.commit()

在这个小小的实验室里工作。但应该在更复杂的环境中进行测试。

DZD :)

时间

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57005835

复制
相关文章
图数据库neo4j(二)python 连接neo4j
在完成安装之后,在python中调用py2neo即可,常用的有Graph,Node, Relationship。
学到老
2019/01/25
6.8K1
图数据库neo4j(二)python 连接neo4j
neo4j︱与python结合的py2neo使用教程(四)
版权声明:博主原创文章,微信公众号:素质云笔记,转载请注明来源“素质云博客”,谢谢合作!! https://blog.csdn.net/sinat_26917383/article/details/79901207
悟乙己
2019/05/26
9.1K0
py2neo 使用手册
neo4j︱与python结合的py2neo使用教程(四) Neo4j 简介及 Py2Neo 的用法 py2neo操作图数据库neo4j py2neo操作-官方样例
星辉
2021/12/06
1.3K0
动态代理在Android中的运用
动态代理是一种在编程中非常有用的设计模式,它允许你在运行时创建一个代理对象来代替原始对象,以便在方法调用前后执行额外的逻辑。在Android开发中,动态代理可以用于各种用例,如性能监控、AOP(面向切面编程)和事件处理。本文将深入探讨Android动态代理的原理、用途和实际示例。
Rouse
2023/09/12
1K0
动态代理在Android中的运用
Apply Changes 在 Android 11 中的增强特性
Apply Changes 是 Android Studio 中的一项功能,我们在 Android Studio 3.5 中引入了这项功能,以帮助开发者快速迭代您对应用所做的更改。Apply Changes 通过 JVMTI API 来判断是否可以使用此方式进行变更。在 Android 11 上,ART (Android 运行时) 扩展了 JVMTI API,引入了一个名为 Structural Class Redefinition (类的结构性重定义) 的新功能。该功能使 Apply Changes 在 Android 11 设备上增加了一类新的应用场景。现在,可以使用 Apply Changes 将更复杂的修改快速部署到正在运行的应用上,这包括:
Android 开发者
2021/01/29
9120
Apply Changes 在 Android 11 中的增强特性
Apply Changes 在 Android 11 中的增强特性
Apply Changes 是 Android Studio 中的一项功能,我们在 Android Studio 3.5 中引入了这项功能,以帮助开发者快速迭代您对应用所做的更改。Apply Changes 通过 JVMTI API 来判断是否可以使用此方式进行变更。在 Android 11 上,ART (Android 运行时) 扩展了 JVMTI API,引入了一个名为 Structural Class Redefinition (类的结构性重定义) 的新功能。该功能使 Apply Changes 在 Android 11 设备上增加了一类新的应用场景。现在,可以使用 Apply Changes 将更复杂的修改快速部署到正在运行的应用上,这包括:
Android 开发者
2021/01/29
6940
在LR中动态拼接参数的问题
在很多时候系统是提供了多选并且组合提交的操作,这个时候请求就需要动态拼接了,这里举个参考的例子给大家,希望能够让大家明白怎么回事。
TestOps
2022/04/04
2.1K0
在LR中动态拼接参数的问题
Java中的动态代理以及在框架中的应用
我们先假设现在有怎么一个需求,要求你在不改动原有代码的情况下在所有类的方法前后打印日志。我们很容易想到静态代理,具体做法如下:
烂猪皮
2021/06/09
1.3K0
Java中的动态代理以及在框架中的应用
动态代理原理及在 Android 中的应用
因为一个静态代理类只能服务一种类型的目标对象,在目标对象较多的情况下,会出现代理类较多、代码量较大的问题。
trampcr
2019/11/04
2.2K0
Litho在动态化方案MTFlexbox中的实践
MTFlexbox是美团内部应用的非常成熟的一种跨平台动态化解决方案,它遵循了CSS3中提出的Flexbox规范来抹平多平台的差异。MTFlexbox适用于重展示、轻交互的业务场景,与现有HTML、React Native、Weex等跨平台方案相比,MTFlexbox具备着性能高、渲染速度快、兼容性高、原生功能支持度高等优势。但其缺点在于不支持复杂的交互逻辑,不适合复杂交互的业务场景。目前,MTFlexbox已经广泛应用在美团首页、搜索、外卖等重要业务场景。本文主要介绍在MTFlexbox中使用Litho优化性能的实践经验,更多关于MTFlexbox的实践内容,可查阅《MTFlexbox自动化埋点探索》。
美团技术团队
2019/09/24
1.8K0
Litho在动态化方案MTFlexbox中的实践
PHP动态特性的捕捉与逃逸
今天看到了某家厂商的Webshell检测引擎,实测效果还可以,确实把PHP Webshell检测这个难题实质上地推进了一步。
phith0n
2020/10/15
1.6K0
动态库和静态库的特性
库是共享程序代码的方式,一般分为静态库(static libraries)、动态库(dynamically loaded libraries)和共享库(shared libraries)。
李小白是一只喵
2020/04/23
1.9K0
python高级-动态特性(20)
动态语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。现在比较热门的动态语言有:Python、PHP、JavaScript、Objective-C等,而 C 、 C++ 等语言则不属于动态语言。
Se7eN_HOU
2019/09/11
5180
python动态语言特性小结
1 moduleNames = ['sys', 'os', 're', 'unittest']
py3study
2020/01/10
4770
python 动态属性和特性
https://www.liaoxuefeng.com/wiki/1016959663602400/1017502538658208 请利用 @property 给一个Screen对象加上width和height属性,以及一个只读属性resolution
Michael阿明
2022/01/07
5610
在 Kubernetes 中,如何动态配置本地存储?
Kubernetes 中使用节点的本地存储资源有 emptyDir、hostPath、Local PV 等几种方式。这之中,emptyDir 无法持久化数据,hostPath 方式需要手动管理卷的生命周期,运维压力大。因此在某些场景下,如果用户出于性能和运维成本考虑需要使用本地存储,Local PV 似乎是唯一选择。
CNCF
2019/12/05
3.4K0
在 Kubernetes 中,如何动态配置本地存储?
95 - 在Flask中如何使用动态路由
1. 静态路由和动态路由有什么区别? 路由 Utl Path http://loaclhost/abc/test.html 静态路由 Path与路由函数一一对应 动态路由 多个Path与同一个路由函数对应 http://loaclhost/abc/test.html http://loaclhost/xyz/test.html 不管访问哪一个Url,都会执行同一个服务端的路由函数 2. 如何使用Flask实现动态路由 ''' pip install flack ''' from flask import
ruochen
2021/06/27
5.6K0
95 - 在Flask中如何使用动态路由
在Oracle 12c中,在RMAN方面有哪些增强的新特性?
在Oracle 11gR2中,引入了SYSASM特权用来执行与ASM相关的特定操作。同样地,在Oracle 12c中引入了3个新的系统用户SYSBACKUP、SYSDG和SYSKM,其中,SYSKM可以执行与透明数据加密密钥(Transparent Data Encryption keystore)相关的操作,SYSDG可以在DGMGRL或命令行接口里执行与DG(Data Guard)相关的操作,而SYSBACKUP特权用来在RMAN或SQL*Plus中执行备份和恢复命令。
AiDBA宝典
2022/02/22
9050
点击加载更多

相似问题

在GoJS节点或graphObject中具有“可见溢出”

11

GWT中的动态特性

13

从Facebook GraphObject检索数据

23

在Java中动态设置CucumberOptions的“特性”

13

脸书空GraphObject

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文