python 化学结构_PyOrganic
PyOrganic
介紹
一個(gè)使用類來(lái)描述有機(jī)化合物結(jié)構(gòu)的Python庫(kù)。
架構(gòu)
Compound:描述化合物
Atom(抽象類) -> Carbon, Hydrogen:描述原子
Bond(抽象類) -> SingleBond, DoubleBond, TripleBond:描述鍵
示例
from PyOrganic import * # 導(dǎo)入 PyOrganic
Methane = Compound() # 定義化合物甲烷
C1 = Carbon(Methane) # 定義5個(gè)原子
H1 = Hydrogen(Methane)
H2 = Hydrogen(Methane)
H3 = Hydrogen(Methane)
H4 = Hydrogen(Methane)
SingleBond(C1, H1) # 連接原子
SingleBond(C1, H2)
SingleBond(C1, H3)
SingleBond(C1, H4)
Methane.entry_atom = C1 # 設(shè)置根原子
print(Methane.chemical_formula) # 輸出化學(xué)式 -> CH?
文檔
class Compound
化合物
方法
def __init__(self)
構(gòu)造化合物
屬性
entry_atom: Atom
訪問(wèn)該化合物的入口點(diǎn)
只讀屬性
atoms: list[Atom]
該化合物所擁有的原子
chemical_formula: str
化學(xué)式
name: str
系統(tǒng)命名法下的名稱(待補(bǔ))
class Atom
原子
方法
def __init__(self, name: str, symbol: str, max_bonds: int, compound: Compound)
構(gòu)造原子
name : 原子名稱
symbol : 元素符號(hào)
max_bonds : 最大能連接的鍵數(shù)
compound : 從屬的化合物
def set_bond(self, bond: Bond)
在該原子上單方面連接新的鍵
bond : 新連接的鍵
def spread(self, atoms: Iterable[Atoms])
遞歸尋找化合物中所有原子
atoms : 由所有原子組成的列表
只讀屬性
bonds: list[Bond]
獲得原子上所連的鍵的集合
compound: Compound
該原子所屬化合物
max_bonds: int
最大可連的鍵的數(shù)量
name: str
原子名稱
next_atoms: list[Atom]
與該原子相連的原子
rest_bonds_value: int
剩余可連的鍵的數(shù)量
symbol: str
元素符號(hào)
class Carbon(Atom)
碳原子
方法
__init__(self, compound: Compound) => Atom.__init__('碳', 'C', 4, compound)
構(gòu)造碳原子
compound : 從屬的化合物
class Hydrogen(Atom)
氫原子
方法
__init__(self, compound: Compound) => Atom.__init__('氫', 'H', 1, compound)
構(gòu)造氫原子
compound : 從屬的化合物
class Bond
鍵
方法
def __init__(self, left_atom: Atom, right_atom: Atom, value: int, name: str):
構(gòu)造鍵
left_atom : 鍵左側(cè)的原子
right_atom : 鍵右側(cè)的原子
value : 鍵值(共用電子對(duì)數(shù)),單鍵為1,雙鍵為2,叁鍵為3
name : 鍵名
只讀屬性
left_atom: Atom
鍵左邊連的原子
right_atom: Atom
鍵右邊連的原子
value: int
鍵值(共用電子對(duì)數(shù)),單鍵為1,雙鍵為2,叁鍵為3
name: str
鍵名
class SingleBond(Bond)
方法
def __init__(left_atom: Atom, right_atom: Atom) => Bond.__init__(leftatom, rightatom, 1, '單鍵')
構(gòu)造單鍵
left_atom : 鍵左側(cè)的原子
right_atom : 鍵右側(cè)的原子
class DoubleBond(Bond)
方法
def __init__(left_atom: Atom, right_atom: Atom) => Bond.__init__(leftatom, rightatom, 2, '雙鍵')
構(gòu)造雙鍵
left_atom : 鍵左側(cè)的原子
right_atom : 鍵右側(cè)的原子
class TripleBond(Bond)
方法
def __init__(left_atom: Atom, right_atom: Atom) => Bond.__init__(leftatom, rightatom, 3, '叁鍵')
構(gòu)造叁鍵
left_atom : 鍵左側(cè)的原子
right_atom : 鍵右側(cè)的原子
class NotTheSameCompoundError(Exception)
當(dāng)不同化合物的原子試圖成鍵時(shí)拋出
class NotEnoughBondsError(Exception)
當(dāng)剩余可連的鍵不足的原子試圖成鍵時(shí)拋出
貢獻(xiàn)者
ZZH
NKID00
總結(jié)
以上是生活随笔為你收集整理的python 化学结构_PyOrganic的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java 计算股票高低点_[转载]股市中
- 下一篇: 【Java后台】Java执行Python