我正在编写一个 Python 模块,并且我希望许多函数能够访问元素周期表上的信息;即原子序数及其对应的原子符号。信息永远不应该改变。我正在努力解决如何实现这一点。
哈希与元组:哈希将提供非常方便的查找,但可以轻松更改。至少一个元组是不可变的。
变量与类:我一直在尽可能将模块中的所有内容都保留在类中,但我不确定这在这里是否有意义,因为应该只有一个元素周期表。真理的来源之一。
也许我完全错过了一些东西。我从来没有见过有人在我看过的 Python 项目中硬编码这么多信息。指导将不胜感激。
您总是可以从安装周期表开始,它看起来非常完整 - 即使您必须自己执行此操作,您也可以查看代码。我用了:
sudo pip install periodictable
然后能够做到:
>>> import periodictable as pt
>>> g = pt.Au
>>> g.isotopes
[171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205]
>>> g.density
19.3
>>> g.mass
196.96655
>>> g.name
'gold'
>>>
就个人而言,我会为类创建一个类element
,然后对类实例中适当的成员进行编码。例如:
class Element(object):
""" This class represents a single element in the periodic table """
def __init__(self, Symbol, Name, Number, Group, Period, etc):
"""
Initialises a single element instance all the above prarmeters are required
"""
self.Symbol = Symbol
#etc
然后,您可以在元素周期表文件中定义每个元素,或者将它们组织成命名块或单个类等。
很多人已经以文本形式对元素周期表进行了编码。询问他们的数据。例如,如果您的软件与 Wikipedia 的许可证兼容,则以编程方式从其中获取数据并将其放入某种数据库中,或者只是按需获取。