简体   繁体   English

将列表分配给python对象

[英]assign list to python object

I have a file to read from, that looks like: 我有一个要读取的文件,看起来像:

  0.0017224129699045  0.0006501069699993  0.9998957781816742
  0.1990018751753198  0.0008531972943402  0.0001365339587167
  0.3985306090674854  0.0004447825187626  0.9994454487115476
  0.5997635306734566  0.0007689624538330  0.0001887505556155
  0.8014083650919446  0.0007156269856168  0.9995317401042954
  0.1999636426048639  0.1995427045657650  0.0017775030876521

Each column shows coordinate of an atom. 每列显示一个原子的坐标。 I want to assign coordinates to the atom defined as an object in python: 我想将坐标分配给在python中定义为对象的原子:

# The parser
#!/usr/bin/python3
def get_pos():
    with open("CONTCAR", "r") as finp:
        for line in finp:
            for _ in range(6):
                sdata = finp.readline()
                tpos.append(sdata.split())

    print(tpos)

And the calling function is: 调用函数为:

#!/usr/bin/python3
import parsepos

class Atom:
    count = 0

    def __init__(self, name, pos=[], vel=[]):
        self.name = name
        self.pos = pos
        self.vel = vel
        Atom.count += 1
        # self.parse = parsepos.get_pos()
parsepos.get_pos()

This mcwe , shows the atoms are listed properly, in list tpos , but I don't know how to assign those value to atom.pos . mcwe显示在list tpos正确列出了原子,但是我不知道如何将这些值分配给atom.pos

Kindly help. 请帮助。

By default, a function in Python returns None . 默认情况下,Python中的函数返回None Just make get_pos() returning tpos : 只需使get_pos()返回tpos

def get_pos():
    with open("CONTCAR", "r") as finp:
        for line in finp:
            for _ in range(6):
                sdata = finp.readline()
                tpos.append(sdata.split())

    # print(tpos)
    return tpos

and then like this: 然后像这样:

Atom.pos = parsepos.get_pos()
print(Atom.pos)

Hope this helps! 希望这可以帮助!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM