저는 재미있는 화학 프로젝트를 진행하고 있으며 텍스트 파일의 목록을 초기화하는 함수가 있습니다. 내가하고 싶은 것은 함수가 스스로를 목록으로 대체하도록 만드는 것이다. 그래서 여기에 무작위로 또는 작동하지 않을 것입니다 그것에 내 첫 번째 시도가 있고 난 이유를 알고하지 않습니다목록으로 바뀌는 파이썬 함수
def periodicTable():
global periodicTable
tableAtoms = open('/Users/username/Dropbox/Python/Chem Project/atoms.csv','r')
listAtoms = tableAtoms.readlines()
tableAtoms.close()
del listAtoms[0]
atoms = []
for atom in listAtoms:
atom = atom.split(',')
atoms.append(Atom(*atom))
periodicTable = atoms
그것은이 방법으로 호출됩니다 :
def findAtomBySymbol(symbol):
try:
periodicTable()
except:
pass
for atom in periodicTable:
if atom.symbol == symbol:
return atom
return None
방법에 있는가 이거 만들어?
함수를 자체 목록으로 바꾸지 마십시오. 목록과 함수를 사용하는 것은 다릅니다. 어떻게 목록을 호출하거나 함수를 슬라이스합니까? - 그리고이 경우를 다르게 다루려고하면 코드가 사용하는 것처럼 지저분 해집니다. 또한 "무작위로"는 좋은 오류 설명이 아닙니다. 모든 예외 사항을 삼키는 것이 더 나은 오류 표시기를 제공 할 수는 없습니다. – user2864740
''memoization functions ''(http://en.wikipedia.org/wiki/Memoization)에 관심이있을 수 있습니다 :'periodicTable = loadPeriodicTable()'(한 번 말하면, 프로그램) 자신이 여기에 캐싱이나 메모를 할 필요가 없기 때문입니다. – user2864740
@ user2864740 그래, 그 일에 대해 생각했지만, 파이썬의 복잡함을 탐험하는 것을 즐긴다. 여기 몇몇 사용자의 성가심을 많이 받는다. – Hovestar