尝试打印值但获取内存位置
Trying to Print values but getting memory location instead
我在下面有一个函数,我想输出与 'O' 相关的值行,而不是打印这些值的位置,我该如何修改? allReactions 最初是一个空数组。我已经尝试了多种方法来解决这个问题,但不断出现错误。我也认为我的方法效率不高。
allReactions = []
reactionFile = "/Databases/reactionsDatabase.txt"
with open(reactionFile) as sourceFile:
for line in sourceFile:
if line[0] == "!" or len(line.strip()) == 0: continue
allReactions.append(Reaction(line, sourceType="Unified Data"))
def find_allReactions(allReactions, reactant_set):
reactant_set = set(reactant_set)
relevant_reactions = []
previous_reactant_count = None
while len(reactant_set) != previous_reactant_count:
previous_reactant_count = len(reactant_set)
for reaction in allReactions:
if set(reaction.reactants).issubset(reactant_set):
relevant_reactions.append(reaction)
reactant_set = reactant_set.union(set(reaction.products))
return relevant_reactions
print find_allReactions(allReactions, ["O"])
您正在尝试打印 Reaction
个对象的列表。默认情况下,python 打印一个 class 对象的 ID,因为它真的没有太多可说的。如果您可以控制 class 定义,则可以通过将 __str__
和 __repr__
方法添加到 class.
来更改它
>>> class C(object):
... pass
...
>>> print C()
<__main__.C object at 0x7fbe3af3f9d0>
>>> class C(object):
... def __str__(self):
... return "A C Object"
...
>>> print C()
A C Object
>>>
如果您无法控制 class...那么,作者没有实现 class 的漂亮视图。您可以使用这些方法创建子classes 或编写一个函数来提取您想要的内容。
我在下面有一个函数,我想输出与 'O' 相关的值行,而不是打印这些值的位置,我该如何修改? allReactions 最初是一个空数组。我已经尝试了多种方法来解决这个问题,但不断出现错误。我也认为我的方法效率不高。
allReactions = []
reactionFile = "/Databases/reactionsDatabase.txt"
with open(reactionFile) as sourceFile:
for line in sourceFile:
if line[0] == "!" or len(line.strip()) == 0: continue
allReactions.append(Reaction(line, sourceType="Unified Data"))
def find_allReactions(allReactions, reactant_set):
reactant_set = set(reactant_set)
relevant_reactions = []
previous_reactant_count = None
while len(reactant_set) != previous_reactant_count:
previous_reactant_count = len(reactant_set)
for reaction in allReactions:
if set(reaction.reactants).issubset(reactant_set):
relevant_reactions.append(reaction)
reactant_set = reactant_set.union(set(reaction.products))
return relevant_reactions
print find_allReactions(allReactions, ["O"])
您正在尝试打印 Reaction
个对象的列表。默认情况下,python 打印一个 class 对象的 ID,因为它真的没有太多可说的。如果您可以控制 class 定义,则可以通过将 __str__
和 __repr__
方法添加到 class.
>>> class C(object):
... pass
...
>>> print C()
<__main__.C object at 0x7fbe3af3f9d0>
>>> class C(object):
... def __str__(self):
... return "A C Object"
...
>>> print C()
A C Object
>>>
如果您无法控制 class...那么,作者没有实现 class 的漂亮视图。您可以使用这些方法创建子classes 或编写一个函数来提取您想要的内容。