我正在做一個戰鬥幫手d & D.我打算使它獲得每個怪物的統計從一個txt文件格式如下:獲得自我屬性
_Name of monster_
HP = 45
AC = 19
Fort = -3
我正在使用名爲Monster
的類,並且__init__
會遍歷.txt文件。它迭代正常,我的問題是,我不能讓變量在它之前有self.
。 Monsterfind()
只是找到怪物.txt文件的路徑,我知道這不是問題,因爲變量打印的很好。
class Monster:
def __init__(self, monster):
"""Checks if the monster is defined in the directory.
If it is, sets class attributes to be the monster's as decided in its .txt file"""
self.name = monster.capitalize()
monstercheck = self.monsterfind()
if monstercheck != Fales:
monsterchck = open(monstercheck, 'r')
print monstercheck.next() # Print the _Name of Monsters, so it does not execute
for stat in monstercheck:
print 'self.{}'.format(stat) # This is to check it has the correct .txt file
eval('self.{}'.format(stat))
monstercheck.close()
print 'Monster loaded'
else: # if unfound
print '{} not found, add it?'.format(self.name)
if raw_input('Y/N\n').capitalize() == 'Y':
self.addmonster() # Function that just makes a new file
else:
self.name = 'UNKNOWN'
它只是說:self.AC = 5
SyntaxError: invalid syntax @ the equals sign
如果我的同班同學或者我__init__
任何問題,哪怕是不重要的,請告訴我,因爲這是我第一次使用類。
預先感謝您
解析不會太棘手。只是'pre_stat,PRE_VALUE = line.split( '=')',然後'STAT = pre_stat.strip()'和'值= ast.literal_eval(PRE_VALUE)','但json'可能更容易 – mgilson
@mgilson不,但使用現有工具可能更容易,除非輸入格式很重要。 –
非常感謝你!所以要進一步詢問,但是JSON的一些好文檔在哪裏,因爲我不熟悉它。格式對我來說並不重要,所以我會研究JSON。另外,除了不需要手動解析外,還有哪些主要優點?再次感謝你的幫助! – Timidger