ÆÄÀ̽ã Áö¿ªº¯¼ö Áú¹®

   Á¶È¸ 4618   Ãßõ 0    

안녕하세요

파이썬에서


def aaa():
    x = 11


def bbb():
    y = x + 13
    print(y)

bbb()


이렇게 짰다고 했을 때, aaa함수의 변수 x를 bbb에서 사용할 수 있게 하려면 어떻게 해야하는지 궁금합니다.

ªÀº±Û Àϼö·Ï ½ÅÁßÇÏ°Ô.
±èÁ¦¿¬ 2017-02
def aaa():
    global x
    x = 11
     
³×ÀÌÃÄ 2017-02
´äº¯°¨»çÇÕ´Ï´Ù. ¸»¾¸ÇϽŴë·Î Çغôµ¥ ¾ÈµÇ³×¿ä...

x°¡ global¿¡´Â ¸í½Ã°¡ ¾ÈµÇ¾î Àִµ¥, ÇÔ¼öaaa¿¡ global x¶ó°í Çصµ µÇ³ª¿ä?
±èÁ¦¿¬ 2017-02
3.0¿¡¼­´Â Á» Ʋ·ÁÁ³³ªºÁ¿ä ..
ÀÚ¹Ùó·³ ¹Ù²ïµí ÇÕ´Ï´Ù.


def aaa():
    x = 11


def bbb():
    y = x + 13
    print(y)

x=0
bbb()
NeOpLe 2017-02
¸ÕÀú ÇÔ¼ö ¹Û¿¡¼­ ¼±¾ðÇÏ°í,  global x ÀÌ·¸°Ô ÇÔ¼ö ³»¿¡¼­ import ÇØ¾ß ÇÕ´Ï´Ù.

x = 0

def aaa()
  global x
  x = 11
     
³×ÀÌÃÄ 2017-02
ÇÔ¼ö¹Û¿¡ x = 0À» ÁöÁ¤ÇÏÁö ¾Ê°í,
ÇÔ¼ö aaa¿¡ Á¤ÀǵǾî ÀÖ´Â x = 11 ÀÌ°ÍÀ»
ÇÔ¼ö bbb¿¡ ºÒ·¯¿Í¼­, x°ªÀ» »ç¿ëÇÒ ¼ö ÀÖ°Ô´Â ¸øÇϳª¿ä??
          
°øÁß È­Àå½ÇÀ» °³ÀÎ Áý¾È¿¡ ¼³Ä¡ÇÏÁö´Â ¾ÊÁö¿ä.¤¾¤¾
          
Á¤ÀǼ® 2017-02
Á¦°¡ ÆÄÀ̽ãÀº Àß ¸ð¸£Áö¸¸,,
C/C++ °°Àº °æ¿ì¿¡´Â return °ª ÇüÅ·ΠÇÔ¼ö ³»ºÎÀÇ °ªÀ» ´Ù¸¥ ÇÔ¼ö·Î º¸³¾ ¼ö ÀÖ½À´Ï´Ù.
ÆÄÀ̽ãÀº ¾ÈµÇ·Á³ª¿ä?
¹«¾Æ 2017-02
Èì... ÆÄÀ̽ãÀº ¹ö±×¸¦ ¸¹ÀÌ ¸¸µé¾î ³¾ ¼ö ÀÖ´Â À§ÇèÇÑ °ÍÀ̱º¿ä.
Áö¿ªº¯¼ö¸¦ Àü¿ª¿¡¼­ »ç¿ë ÇϽǷÁ¸é
global ·Î Àü¿ª ÁöÁ¤ÇÏ½Ã¸é µË´Ï´Ù
±×¸®°í Àü¿ªº¯¼ö¸¦ ÇÔ¼ö¿¡¼­ ¾²½Ç·Á¸é Ãʱ⿡ º¯¼ö ÁöÁ¤ ÇÏ¼Å¾ß µÇ°í, ±×³É ÁöÁ¤ ¾øÀÌ ¾²½Ç·Á¸é
ÇÔ¼ö¿¡¼­ return x ·Î °ªÀ» ¸®ÅÏ ¹Þ¾Æ¼­ ¾²½Ã¸é µË´Ï´Ù
³×¿ÀÇÃ´Ô ¸ð¸£´Â°Ô ¾øÀ¸¼¼À¯~~|
Wheein 2017-02
ÆÄÀ̽㿡¼­ ±âº»ÀûÀ¸·Î º¯¼ö °ªÀ» ÀÐÀ» ¶§´Â
1. local¿¡ ¼±¾ðµÇ¾îÀÖ´ÂÁö È®ÀÎ
2. local¿¡ ¾øÀ¸¸é global¿¡¼­ È®ÀÎ
3. global¿¡µµ ¾øÀ¸¸é undefined error
ÀÇ °úÁ¤À» °ÅĨ´Ï´Ù.

±×·¯³ª º¯¼ö °ªÀ» ¾µ ¶§´Â ÆÄÀ̽ãÀÌ ±âº»ÀûÀ¸·Î ¸í½ÃÀû º¯¼ö ¼±¾ðÀ» ÇÏÁö ¾Ê±â ¶§¹®¿¡
1. local¿¡ ¼±¾ðµÇ¾î ÀÖÀ¸¸é no problem
2. local¿¡ ¼±¾ðÀÌ µÇ¾î ÀÖÁö ¾ÊÀ¸¸é
  2-a. local¿¡ »õ º¯¼ö¸¦ ¼±¾ð
  2-b. global¿¡ ÀÖ´Â º¯¼ö¿¡ °ªÀ» ¾¸
2-a¿Í 2-b Áß¿¡¼­ 2-a°¡ ¿ì¼±½Ã µË´Ï´Ù.
µû¶ó¼­ ´Ù¸¥ ÇÔ¼ö¿¡¼­µµ »ç¿ëµÉ Àü¿ªº¯¼öÀÇ °ªÀ» ¼öÁ¤Çϱâ À§Çؼ­´Â ¸ÕÀú global scope¿¡ º¯¼ö¸¦ ¼±¾ðÇÏ°í, aaa ÇÔ¼ö ³»¿¡¼­ "global º¯¼ö¸í"À» ÅëÇØ 2-bÀÇ °úÁ¤À» °ÅÄ¡µµ·Ï ¸í½ÃÇØÁÖ¼Å¾ß ÇÕ´Ï´Ù.

¾Æ´Ï¸é x °ªÀÌ °è¼Ó ¹Ù²î´Âµ¥ bbb¿¡¼­ x °ª¸¸ ¹Ù²ï °°Àº ·ÎÁ÷ÀÌ ½ÇÇàµÇ´Â°Ô ¸ñÀûÀ̽öó¸é, ÆÄÀ̽ãÀÌ first-class functionÀÓÀ» È°¿ëÇÏ¿©

>>> def make_bbb(x):
...    def _bbb():
...        y = x + 13
...        print (y)
...    return _bbb
...
>>> make_bbb(11)()
24
>>> make_bbb(20)()
33

°ú °°ÀÌ Àü¿ªº¯¼ö ¾øÀÌ ÇÁ·Î±×·¡¹Ö ÇÏ½Ç ¼öµµ ÀÖ½À´Ï´Ù.


QnA
Á¦¸ñPage 2600/5680
2015-12   1481379   ¹é¸Þ°¡
2014-05   4944667   Á¤ÀºÁØ1
2020-03   8001   ¼­¿ï»ç¶÷
2021-07   6171   Âî·Ï
2016-10   6502   Àü¼³¼ÓÀǹ̡¦
2017-11   3562   º°Äá
2012-08   6904   ¼Û»óº´
2023-03   3669   ·ù³Ù¾ÆÀ̽º
2012-09   19350   ÀϹÝÀ¯Àú
2009-06   6963   °ûÀº¼®
2012-09   12379   ÇÁ¶óƼ»ç
2015-10   4511   topschool
2019-02   2973   ¹Ìµµ¸®
2012-09   8322   2CPUÃÖÁÖÈñ
2009-07   6874   µþ±â´ëÀå
2015-11   3885   Àü¼³¼ÓÀǹ̡¦
2020-04   2290   ĵÀ§µå
2012-09   6914   ·¹Àκ¸¿ì7
2016-10   5911   Ãʺ¸IT
2020-04   2668   Äܵ¥¼­ºÎ·¯¡¦
2016-10   6267   µÞºÏ¼Ò³â
2020-04   3700   °Ü¿ï³ª¹«