Python에서 변수를 대량 생성하고 호출하는 방법
따라서 같은 코드를 세 번 복제하는 것이 아니라 좋은 습관을 들일 필요가 있다.
Locals() 메서드 사용
일반 함수에서는 확실히 사용할 수 있지만, 클래스에서는 안 된다.이 문제도 나를 오랫동안 괴롭혔기 때문에, 클래스를 작성할 때 대량으로 변수를 만들고 호출해야 할 때, 사용하지 않는 것을 권장합니다.
for i in range(3):
locals() ['x' + str(i)] = i
for j in range(3):
a = locals() ['x' + str(j)]
print(a)
print(x0)
실행 결과는 다음과 같습니다.
0
1
2
0
이 때 일반 함수에서는 모든 것이 정상적이지만 작성된 클래스에서는 실행할 수 없습니다.
class test(object):
def __init__(self):
for i in range(3):
locals() ['self.x' + str(i)] = i
def run(self):
for i in range(3):
a = locals() ['self.x' + str(i)]
print(a)
a = test()
a.run()
오류 메시지는 다음과 같습니다. 이 변수를 찾지 못했습니다.GUI를 작성할 때 클래스는 자주 사용하는 도구이기 때문에 클래스에서 이 방법을 호출할 때 오류가 발생했습니다.
KeyError: 'self.x0'
그래서 나는 사전을 사용하는 더욱 우아한 방식을 찾았다.사전 사용
사전 키 값 쌍의 형식, 특히 키는 문자열로 설정할 수 있으며 이런 문제에 대해 좋은 해결 방안을 제공할 수 있다.
class test(object):
def __init__(self):
self.d = {}
for i in range(3):
self.d['x' + str(i)] = i
def run(self):
for i in range(3):
a = self.d['x' + str(i)]
print(a)
asd = test()
asd.run()
이때 클래스에서 대량으로 변수를 생성하고 호출할 수 있습니다.일반 함수에서도 가능합니다.
d = {}
for i in range(3):
d['x' + str(i)] = i
print(d.keys())
print(d['x0'])
for i in range(3):
print(d['x' + str(i)])
출력 결과는 다음과 같습니다.
dict_keys(['x0', 'x1', 'x2'])
0
0
1
2
이상은Python이 어떻게 대량으로 변수를 생성하고 호출하는지에 대한 상세한 내용입니다. 더 많은 Python 대량으로 변수를 생성하고 호출하는지에 관한 자료는 저희 다른 관련 글을 주목해 주십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.