首页 > 解决方案 > 调用存储在列表中的多个函数

问题描述

我有一个程序,我想自动化,尽可能地删除预处理步骤。通过读取数据集,程序会生成一系列函数调用,这些函数调用将在后续步骤中使用。目前我只是将存储在变量中的生成调用复制到文件中,但如果可能的话我想跳过这一步

##preprocessing steps here...
bindings = ["g.bind('rdf', URIRef('http://www.w3.org/1999/02/22-rdf-syntax-ns#'))",
 "g.bind('bf', URIRef('http://id.loc.gov/ontologies/bibframe/'))",
 "g.bind('bflc', URIRef('http://id.loc.gov/ontologies/bflc/'))"]

### then the bind calls are added to the function below.
g = rdflib.Graph()

g.bind('rdf', URIRef('http://www.w3.org/1999/02/22-rdf-syntax-ns#'))
g.bind('bf', URIRef('http://id.loc.gov/ontologies/bibframe/'))
g.bind('bflc', URIRef('http://id.loc.gov/ontologies/bflc/'))```

g.parse(data= graph, format='nt')
g.serialize(format='turtle')

如何从流程中删除复制和粘贴?

标签: python

解决方案


这些调用都是针对同一个功能的吗?如果是这样,则无需存储表示函数调用的字符串;只存储它应该被调用的数据。

bindings = [
    ('rdf', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'),
    ('bf', 'http://id.loc.gov/ontologies/bibframe/'),
    ('bflc', 'http://id.loc.gov/ontologies/bflc/'),
]

# ...

for key, uri in bindings:
    g.bind(key, URIRef(uri))

推荐阅读