Par*_*aH2 5 python parameters class python-3.x
我正在学习Python,我刚学完该课程的基础知识.这是我学习的第一个OOP语言,所以目前并非一切都非常清晰.无论如何.
我想知道在Python(3.6)中是否可以创建一个我们不知道几个对象的属性的类(或许可能只有2或3个).
例如,假设您想要通过其属性定义分子,以便您可以在其他程序中使用它们来建模或预测事物.您可以涉及的基本属性(例如)Temperature,MolecularWeight和MolarVolume.但是,您也可以使用20个不同的参数轻松定义分子.但是,其中一些可能不存在于每个分子中,或者您现在可能不需要使用它们.(即软件的第一版,......).
问题:
我想知道Python 3.x中是否存在以下语法,以便该类能够精确地创建分子具有的参数数量.我认为定义数千个分子不存在的变量需要花费大量的内存空间......
class Molecule:
def __init__(self, Temperature, MolecularWeight, MolarVolume, *properties):
self.Temperature = Temperature
self.MolecularWeight = MolecularWeight
self.MolarVolume = MolarVolume
self.*properties = *properties
Run Code Online (Sandbox Code Playgroud)
我的目标是使用文件.txt来记录我的分子的属性(我有数千个),它们的属性按照定义的顺序排序,这样当使用类时,如果对于分子甲醇我们有10个参数与第一个如前所述,然后该类将按顺序创建具有十个属性的分子"甲醇".
否则,如果它不存在,我应该默认创建一个包含我所有参数的类,并根据情况考虑其中一些没用吗?或者使用更好的东西存在?
先感谢您
class Molecule:
def __init__(self, temperature, molecular_weight, molar_volume, **properties):
self.temperature = temperature
self.molecular_weight = molecular_weight
self.molar_volume = molar_volume
for k, v in properties.items():
setattr(self, k, v)
Run Code Online (Sandbox Code Playgroud)
m = Molecule(15, 7.5, 3.4, other_property=100)
m.other_property # returns 100
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
248 次 |
| 最近记录: |