저는 여러 변수가 만들어지는 Python 스크립트에서 함수를 사용하고 있으며, 다른 함수에서이 변수를 사용하고 싶습니다. 나는 이것에 대해 global
을 사용하는 것을 생각했지만 잘못된 방법이라고 생각했습니다.모든 변수를 전역 변수로 만들기
그럼 다른 함수의 함수에서 변수를 만드는 가장 좋은 방법은 누구에게 말해 줄 수 있습니까?
저는 여러 변수가 만들어지는 Python 스크립트에서 함수를 사용하고 있으며, 다른 함수에서이 변수를 사용하고 싶습니다. 나는 이것에 대해 global
을 사용하는 것을 생각했지만 잘못된 방법이라고 생각했습니다.모든 변수를 전역 변수로 만들기
그럼 다른 함수의 함수에서 변수를 만드는 가장 좋은 방법은 누구에게 말해 줄 수 있습니까?
변수를 class으로 구성하십시오. 하나의 함수로 클래스를 인스턴스화 한 다음 필요에 따라 인스턴스를 전달하십시오.
엄지 손가락 : 글로벌 무언가를 어떤 시점에서 좋은 해결책으로 생각한다면 그렇게하지 마십시오. 항상 더 좋은 방법이 있습니다.
클래스를 구현하기에 좋은 장소 일 수 있습니다. 이것은 많은 장점을 가지고 있습니다. See Classes in the tutorials.
당신은 "네임 스페이스"개체를 만들 수 있습니다 - 분명 글로벌 네임 스페이스를 유지하기위한 목적으로 네임 스페이스로 기능 객체 : 그러나
class namespace():
pass
global_data=namespace()
def add_attributes(obj):
obj.foo="bar"
add_attributes(global_data)
print (global_data.foo) #prints "bar"
를이 글로벌 키워드를 사용하는 것보다 미미한 낫다 . Paul이 언급 한 것처럼 실제로 여기 수업을 원합니다.
변수를 함수의 속성으로 선언하십시오.
def f1():
f1.a=100
f2.b=200
def f2():
print(f1.a,f2.b)
f1()
f2()
출력 :
100 200
이 일을하는 대신 클래스의 장점이 있습니까? – beardc
@ BirdJaguarIV 객체 지향 접근 방식이 좋지 않거나 익숙하지 않은 경우 사용할 수 있습니다. –