팩터 그래프를 구현하려고합니다. 필자는 적절한 파일에서 요인 기능을 읽으 려합니다. 난 그냥 테스트 파일에서 함수를 읽을 때 불행하게도 나는 오류를 얻을 : 기능파일에서 함수를 읽는 방법? [베이지안 네트워크에서 팩터 그래프 용]
class Node:
def __init__(self,name,graph):
self.name = name
self.graph = graph
self.neighbourFactors=[];
class Factor:
def __init__(self,name,neighbours,graph):
self.name = name
self.value = 1
self.graph = graph
self.neighbourNodes=[];
class Graph:
def __init__(self,factorNumber,nodeNumber,factorNeighboursList):
self.factorNumber = factorNumber
self.factors=[Factor(i,factorNeighboursList[i],self) for i in range(factorNumber)]
self.nodes=[Node(i,self) for i in range(nodeNumber)]
factorNumber=0;
for neighbourNodes in factorNeighboursList:
for i in range(len(neighbourNodes)):
self.factors[factorNumber].neighbourNodes.append(self.nodes[int(neighbourNodes[i])]);
self.nodes[int(neighbourNodes[i])].neighbourFactors.append(self.factors[factorNumber])
factorNumber+=1;
def makeGraph(factorNumber,nodeNumber):
factorNeighboursList=[]*factorNumber
f = open('factorNeighboursInput.txt', 'r')
for line in f:
factorNeighboursList.append(line.split())
g=Graph(factorNumber,nodeNumber,factorNeighboursList)
return g
factorNumber=input('Please specify number of Factors:')
nodeNumber=input('Please specify number of Nodes:')
g=makeGraph(factorNumber,nodeNumber)
f = open('factorFunctionInput.txt', 'r')
lines=f.read().split(';')
print lines
eval(lines[0])(1,2,3)
내 별도의 입력 파일은 다음과 같습니다 :
def f(x0,x1,x2):
return x0*x1*x2
;
def f(x1):
return x1+1
;
def f(x2):
return x2
;
def f(x3):
return x3+2
;
다음과 같이
eval(lines[0])(1,2,3)
File "<string>", line 1
def f(x0,x1,x2):
^
SyntaxError: invalid syntax
내 코드입니다
가능한 중복 [저장 함수를 호출하는 방법 파이썬 프로그램의 다른 파일에?] (http://stackoverflow.com/questions/7644657/how-to-call-a-function-stored-in-another-file-from-a-python-program) –