piq*_*que 5 python types hardcode
我正在编写一个Python模块,我希望许多函数能够访问元素周期表中的信息; 即原子序数及其相应的原子符号.信息永远不会改变.我正在努力实现这个目标.
散列与元组:散列可以提供非常方便的查找,但可以轻松更改.一个元组至少是不可改变的.
变量与类:我一直试图在可能的情况下将类中的所有内容保存在类中,但我不确定这里是否有意义,因为应该只有一个元素周期表.一个事实来源.
也许我完全错过了一些东西.我从来没有见过有人在我看过的Python项目中对这么多信息进行硬编码.指导将非常感激.
你可以随时开始安装periodictable,看起来非常完整 - 即使你必须自己这样做,你也可以看看代码.我用了:
sudo pip install periodictable
Run Code Online (Sandbox Code Playgroud)
然后能够做到:
>>> 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'
>>>
Run Code Online (Sandbox Code Playgroud)
我个人会为一个类创建一个类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
Run Code Online (Sandbox Code Playgroud)
然后,您可以在周期表文件中定义每个元素,或者将它们组织到命名块或单个类等中.