클래스 인스턴스에 액세스 할 때 문제가 있습니다. 프로 시저에서 클래스를 호출 할 때 인스턴스의 이름은 일부 변수에 정의됩니다. 인스턴스 이름을 해당 값으로 만든 다음 액세스하려고하지만 액세스 할 때 오류가 발생합니다. 이 문제를 해결할 수있는 사람이 있습니까?파이썬에서 클래스 개체에 액세스하는 중 오류가 발생했습니다.
class myclass:
def __init__(self,object):
self.name = object
def mydef():
global a1
b = "a1"
b = myclass(b)
mydef()
print a1.name
두 번째 문제 : 내 실제 스크립트에서, 나는 (약 100)이 함수에서 이러한 경우 많은 수의를 만들어야합니다. 그래서 그들의 이름을 global로 정의하는 것은 고통 스럽습니다. 전역으로 선언 할 필요없이 함수 밖의 인스턴스에 액세스 할 수있는 방법이 있습니까?
수정 : 나는 그것을 할 거라고 방법
class myclass:
def __init__(self,object,typename):
self.name = object
self.typeid = typename
def mydef():
file_han = open(file,"r")
while True:
line = file_han.readline()
if not line:
break
start = line.find('"')
end = line.find('"',start+1)
string_f = line[start+1:end]
myclass(string_f,'a11')
mydef(file)
print def.name
print def.typeid
File Contents are :
a11 "def"
a11 "ghi"
a11 "eff"
를 들어, 인스턴스 저장소로 클래스를 사용할 수 있습니다; 'mydef()'가 선언되고있는 레벨이 아닌지는 명확하지 않습니다. 서식 지정에 대한 도움말은 [내 코드 블록의 형식은 어떻게 지정합니까?] (http://meta.stackexchange.com/q/22186) –
mydef와 클래스 선언은 같은 수준입니다. – sarbjit
나는이 질문을 롤백했다. 허용 된 답변에 일부 누락 된 컨텍스트가있었습니다 (업데이트 내역을 저장하는 '전역'을 사용하고있는 곳을 보지 못했습니다). – Makoto