[英]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.