2.7에서 다른 방식으로 전역 변수를 설정하는 Python

프라 바트 샤르마

diff 메서드를 사용하여 전역 변수를 설정하는 것과 관련된 개념을 연습하려고했지만 다음 예제는 내 이해대로 작동하지 않습니다.

#Scope.py

    import os
    x = 'mod' 

    def f1() :
        global x
        x = 'in f1'

    def f2() :
        import scope
        scope.x = 'in f2'

    def print_x() :
        print x

    def f3() :
        import sys
        sc = sys.modules['scope']
        sc.x =  'in f3'




    if __name__  == "__main__" :
        f1()
        print_x()
        f2()
        print_x()
        f3()
        print_x()

다음 결과를 제공합니다.

in f1
in f1
in f1

내 이해에 따라 shd 결과

in f1
in f2
in f3

누군가 내가 뭘 잘못하고 있는지 이해하는 데 도움을 줄 수 있습니까?

파벨 구르 코프

이 수정 된 코드를 확인하십시오.

x = 'mod'


def f1():
    global x
    x = 'in f1'


def f2():
    import scope
    scope.x = 'in f2'
    return scope


def print_x():
    print(x)


def f3():
    import sys
    sc = sys.modules['__main__']
    sc.x = 'in f3'
    return sc


if __name__ == "__main__":
    f1()
    print_x()
    sc = f2()
    print_x()
    print(sc.x)
    sc = f3()
    print_x()
    print(sc.x)

문제는 원본에서 f2()실제로 scope모듈을 이름으로 가져오고 scope변수를 수정 한다는 것입니다 . 그리고 다음에 print_x()당신은 변경되지 않은 참조 x에서 __main__. 에서 f3()모듈을 잘못된 이름으로 참조합니다. 수정하려면 __main__여기에서 사용해야 합니다. 을 사용하면 scope실제로 가져온 모듈을 참조하고 있습니다. f2()(Try remove f2()call) ... 분명히 원하는 것이 아닙니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

다중 상속 설정에서 다른 인수를 전달하는 Python 방식

분류에서Dev

다른 섹션에 전역 변수를 배치하는 방법

분류에서Dev

Swift 2의 중첩 함수 내 전역 함수에서 매개 변수를 설정하는 방법

분류에서Dev

메서드로 전역 변수를 설정하는 방법

분류에서Dev

한 함수 내에서 전역 변수를 설정하고 다른 함수에서 액세스하는 방법은 무엇입니까?

분류에서Dev

파일에서 변수를 전역으로 만들지 만 다른 파일과 공유하지 않는 방법

분류에서Dev

한 양식에서 다른 양식으로 공용 변수를 전달하는 방법

분류에서Dev

다른 매개 변수를 기반으로 argparse에 매개 변수를 추가하는 Python 방식

분류에서Dev

Durandal 2에서 전역 변수를 피하는 방법

분류에서Dev

Python에서 전역 변수를 사용하는 방법

분류에서Dev

Swift 2에서 프로그래밍 방식으로 전체 앱 설정을 다시로드하는 방법

분류에서Dev

파이썬에서 다른 형식으로 날짜 변수를 설정하는 방법은 무엇입니까?

분류에서Dev

목록으로 구성된 변수를 다른 Python 스크립트에 인수로 전달하는 방법

분류에서Dev

Python에서 eval 또는 exec를 사용하여 전역 변수 설정

분류에서Dev

각도 조절기의 전역 변수를 통해 한 기능에서 다른 기능으로 정보 전송

분류에서Dev

isset 내에서 PHP에서 전역 변수를 설정 해제하는 방법

분류에서Dev

JavaScript의 함수 내부에서 두 개의 다른 전역 변수를 변경하는 방법

분류에서Dev

최대 절전 모드에서 기준 결과를 다른 Pojo 클래스 변수로 설정하는 방법

분류에서Dev

전역 변수를 사용하지 않고 다른 함수의 함수에서 setInterval을 중지하는 방법

분류에서Dev

메서드 C #에서 전역 적으로 설정된 변수를 사용하는 방법

분류에서Dev

Python으로 pySerial의 전역 변수를 선언하는 방법

분류에서Dev

PhpStorm : 드롭 다운에서 다른 변수를 선택할 때 이전 이름을 새 이름으로 대체하도록 설정하는 방법

분류에서Dev

메서드에서 전역 변수를 수정하는 방법

분류에서Dev

OCaml에서 함수 내에 전역 변수를 다시 할당하는 방법

분류에서Dev

OCaml에서 함수 내에 전역 변수를 다시 할당하는 방법

분류에서Dev

Pentaho Kettle : 작업 내에서 변형에서 다른 변형으로 변수를 전달하는 방법

분류에서Dev

Pentaho Kettle : 작업 내에서 변형에서 다른 변형으로 변수를 전달하는 방법

분류에서Dev

한 qt 양식에서 다른 양식 qt 양식으로 변수를 전달하는 방법은 무엇입니까?

분류에서Dev

전역 변수를 만들고 다른 페이지에서 사용하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    다중 상속 설정에서 다른 인수를 전달하는 Python 방식

  2. 2

    다른 섹션에 전역 변수를 배치하는 방법

  3. 3

    Swift 2의 중첩 함수 내 전역 함수에서 매개 변수를 설정하는 방법

  4. 4

    메서드로 전역 변수를 설정하는 방법

  5. 5

    한 함수 내에서 전역 변수를 설정하고 다른 함수에서 액세스하는 방법은 무엇입니까?

  6. 6

    파일에서 변수를 전역으로 만들지 만 다른 파일과 공유하지 않는 방법

  7. 7

    한 양식에서 다른 양식으로 공용 변수를 전달하는 방법

  8. 8

    다른 매개 변수를 기반으로 argparse에 매개 변수를 추가하는 Python 방식

  9. 9

    Durandal 2에서 전역 변수를 피하는 방법

  10. 10

    Python에서 전역 변수를 사용하는 방법

  11. 11

    Swift 2에서 프로그래밍 방식으로 전체 앱 설정을 다시로드하는 방법

  12. 12

    파이썬에서 다른 형식으로 날짜 변수를 설정하는 방법은 무엇입니까?

  13. 13

    목록으로 구성된 변수를 다른 Python 스크립트에 인수로 전달하는 방법

  14. 14

    Python에서 eval 또는 exec를 사용하여 전역 변수 설정

  15. 15

    각도 조절기의 전역 변수를 통해 한 기능에서 다른 기능으로 정보 전송

  16. 16

    isset 내에서 PHP에서 전역 변수를 설정 해제하는 방법

  17. 17

    JavaScript의 함수 내부에서 두 개의 다른 전역 변수를 변경하는 방법

  18. 18

    최대 절전 모드에서 기준 결과를 다른 Pojo 클래스 변수로 설정하는 방법

  19. 19

    전역 변수를 사용하지 않고 다른 함수의 함수에서 setInterval을 중지하는 방법

  20. 20

    메서드 C #에서 전역 적으로 설정된 변수를 사용하는 방법

  21. 21

    Python으로 pySerial의 전역 변수를 선언하는 방법

  22. 22

    PhpStorm : 드롭 다운에서 다른 변수를 선택할 때 이전 이름을 새 이름으로 대체하도록 설정하는 방법

  23. 23

    메서드에서 전역 변수를 수정하는 방법

  24. 24

    OCaml에서 함수 내에 전역 변수를 다시 할당하는 방법

  25. 25

    OCaml에서 함수 내에 전역 변수를 다시 할당하는 방법

  26. 26

    Pentaho Kettle : 작업 내에서 변형에서 다른 변형으로 변수를 전달하는 방법

  27. 27

    Pentaho Kettle : 작업 내에서 변형에서 다른 변형으로 변수를 전달하는 방법

  28. 28

    한 qt 양식에서 다른 양식 qt 양식으로 변수를 전달하는 방법은 무엇입니까?

  29. 29

    전역 변수를 만들고 다른 페이지에서 사용하는 방법은 무엇입니까?

뜨겁다태그

보관