°Ê²¼¤Ï Python ¤ËÁȤ߹þ¤Þ¤ì¤Æ¤¤¤ë·¿¤Î¥ê¥¹¥È¤Ç¤¹¡£(C¡¢Java¡¢¤Þ¤¿¤Ï ¼ÂÁõ¤Ë»È¤ï¤ì¤Æ¤¤¤ë¤½¤Î¾¤Î¸À¸ì¤Ç½ñ¤«¤ì¤¿) ³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Ç¤Ï¡¢ ¤½¤Î¾¤Ë¿·¤¿¤Ê·¿¤òÄêµÁ¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¾Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Î Python ¤Ç¤Ï¡¢·¿¤Î³¬Áؤ˿·¤¿¤Ê·¿ (À°¿ô¤ò»È¤Ã¤Æ¸úΨŪ¤Ëµ²±¤µ¤ì¤ë ÍÍý¿ô·¿¡¢¤Ê¤É) ¤òÄɲ乤뤳¤È¤¬¤Ç¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
°Ê²¼¤ËÀâÌÀ¤¹¤ë·¿¤Î¤¤¤¯¤Ä¤«¤Ë¤Ï¡¢`ÆÃ¼ì°À (special attribute)' ¤ÈÂꤵ¤ì¤¿ÃÊÍϢ¤Í¤é¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤é¤Î°À¤Ï¼ÂÁõ¤Ø¤Î¥¢¥¯¥»¥¹ ¼êÃʤòÄ󶡤¹¤ë¤â¤Î¤Ç¡¢°ìÈÌŪ¤ÊÍÑÅÓ¤ËÍøÍѤ¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ÆÃ¼ì°À¤ÎÄêµÁ¤Ï¾ÍèÊѹ¹¤µ¤ì¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£
None
¤Ç¥¢¥¯¥»¥¹¤µ¤ì¤Þ¤¹¡£¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢ÍÍ¡¹¤Ê¾õ¶·¤ÇÃͤ¬
¸ºß¤·¤Ê¤¤¤³¤È¤ò¤·¤á¤·¤Þ¤¹¡£Î㤨¤Ð¡¢ÌÀ¼¨Åª¤ËÃͤòÊÖ¤µ¤Ê¤¤´Ø¿ô
¤Ï None
¤òÊÖ¤·¤Þ¤¹¡£None
¤Î¿¿ÃÍ (truth value) ¤Ï
µ¶ (false) ¤Ç¤¹¡£
NotImplemented
¤Ç¥¢¥¯¥»¥¹¤µ¤ì¤Þ¤¹¡£¿ôÃͱ黻¤Ë´Ø¤¹¤ë¥á¥½¥Ã¥É¤ä³ÈÄ¥Èæ³Ó (rich comparison)
¥á¥½¥Ã¥É¤Ï¡¢Èï±é»»»Ò¤¬³ºÅö¤¹¤ë±é»»¤ò¹Ô¤¦¤¿¤á¤Î¼ÂÁõ¤ò¤â¤¿¤Ê¤¤¾ì¹ç¡¢
¤³¤ÎÃͤòÊÖ¤¹¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£(±é»»»Ò¤Ë¤è¤Ã¤Æ¤Ï¡¢¥¤¥ó¥¿¥×¥ê¥¿¤¬
´ØÏ¢¤Î¤¢¤ë±é»»¤ò»î¤·¤¿¤ê¡¢Â¾¤ÎÂåÂØÁàºî¤ò¹Ô¤¤¤Þ¤¹¡£) ¿¿ÃͤϿ¿ (true)
¤Ç¤¹¡£
Ellipsis
¤Ç¥¢¥¯¥»¥¹¤µ¤ì¤Þ¤¹¡£¥¹¥é¥¤¥¹Æâ¤Ë "..." ¹½Ê¸¤¬¤¢¤ë¾ì¹ç¤Ë
»È¤ï¤ì¤Þ¤¹¡£¿¿ÃͤϿ¿ (true)¤Ç¤¹¡£
Python ¤ÏÀ°¿ô¡¢ÉâÆ°¾®¿ôÅÀ¿ô¡¢Ê£ÁÇ¿ô¤Î´Ö¤Ç¶èÊ̤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹:
À°¿ô·¿¤Ï¡¢Á´¤Æ¤Î¿ô (whole numbers) ¤òɽ¤¹¿ô³ØÅª½¸¹çÆâ¤Ë¤ª¤±¤ëÍ×ÁǤò ɽ¸½¤¹¤ë·¿¤Ç¤¹¡£
°Ê²¼¤Ë»°¤Ä¤ÎÀ°¿ô·¿¤ò¼¨¤·¤Þ¤¹:
"False"
¤ª¤è¤Ó "True"
¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£
z
¤Î¼Â¿ôÉô¤ª¤è¤Óµõ¿ôÉô¤Ï¡¢
¤½¤ì¤¾¤ìÆÉ¤ß½Ð¤·ÀìÍѰÀ z.real
¤ª¤è¤Ó z.imag
¤Ç¼è¤ê½Ð¤¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
a[i]
¤ÇÁªÂò¤·¤Þ¤¹¡£
ÇÛÎó¤Ï¥¹¥é¥¤¥¹Áàºî (slice) ¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹:
a[i:j]
¤È¤¹¤ë¤È¡¢
i <=
k <
j ¤Ç¤¢¤ë¥¤¥ó¥Ç¥¯¥¹ k
¤ò¤â¤ÄÁ´¤Æ¤ÎÍ×ÁǤòÁªÂò¤·¤Þ¤¹¡£
¼°É½¸½¤È¤·¤Æ¥¹¥é¥¤¥¹¤òÍѤ¤¤¿¾ì¹ç¡¢¥¹¥é¥¤¥¹¤ÏƱ¤¸·¿¤ò¤â¤Ä¿·¤¿¤ÊÇÛÎó¤ò
ɽ¤·¤Þ¤¹¡£¿·¤¿¤ÊÇÛÎóÆâ¤Ç¤Ï¡¢¥¤¥ó¥Ç¥¯¥¹½¸¹ç¤¬ 0 ¤«¤é»Ï¤Þ¤ë¤è¤¦¤Ë
¥¤¥ó¥Ç¥¯¥¹¤ÎÃͤò¿¶¤ê¤Ê¤ª¤·¤Þ¤¹¡£
ÇÛÎó¤Ë¤è¤Ã¤Æ¤Ï¡¢ Âè»°¤Î ``¥¹¥Æ¥Ã¥× (step)'' ¥Ñ¥é¥á¥¿¤ò»ý¤Ä
``³ÈÄ¥¥¹¥é¥¤¥¹ (extended slice)'' ¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹:
a[i:j:k]
¤Ï¡¢
x = i + n*k
, n >=
0
¤«¤Ä i <=
x <
j ¤Ç¤¢¤ë¤è¤¦¤Ê
¥¤¥ó¥Ç¥¯¥¹ x ¤ò»ý¤Ä¤è¤¦¤Ê a Á´¤Æ¤ÎÍ×ÁǤòÁªÂò¤·¤Þ¤¹¡£
ÇÛÎó¤Ï¡¢Êѹ¹²Äǽ¤Ê¤â¤Î¤«¡¢¤½¤¦¤Ç¤Ê¤¤¤«¤Ç¶èÊ̤µ¤ì¤Æ¤¤¤Þ¤¹:
°Ê²¼¤Î·¿¤ÏÊѹ¹ÉÔǽ¤ÊÇÛÎ󷿤Ǥ¹:
(¥Í¥¤¥Æ¥£¥Ö¤Îʸ»ú¥»¥Ã¥È¤¬ ASCII¤Ç¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¡¢chr() ¤ä ord() ¤¬ ASCII ¤È EBCDIC ¤È¤Î´Ö¤ÇÂбþÉÕ¤±¤ò¹Ô¤Ã¤Æ¤ª¤ê¡¢ ʸ»úÎó´Ö¤ÎÈæ³Ó¤Ç ASCII ½ç¤¬¼é¤é¤ì¤ë¸Â¤ê¡¢Ê¸»úÎó¤ÎÆâÉôɽ¸½¤È¤·¤Æ EBCDIC ¤ò»È¤Ã¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£Ã¯¤«Â¾¤Ë¤â¤Ã¤È¤Þ¤·¤Ê¥ë¡¼¥ë¤ò¤ª»ý¤Á¤Ç¤¹¤«?)
sys.maxunicode
¤ÇÍ¿¤¨¤é¤ì¤Æ¤ª¤ê¡¢¥³¥ó¥Ñ¥¤¥ë»þ¤Ë
Python ¤¬¤É¤¦ÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¤Ë°Í¸¤·¤Þ¤¹)¡£ Unicode ¥ª¥Ö¥¸¥§¥¯¥ÈÆâ
¤Ë¥µ¥í¥²¡¼¥È¥Ú¥¢ (surrogate pair) ¤¬¤¢¤Ã¤Æ¤â¤è¤¯¡¢Python ¤Ï
¥µ¥í¥²¡¼¥È¥Ú¥¢¤òÆó¤Ä¤ÎÊÌ¡¹¤Î Unicode Í×ÁǤȤ·¤ÆÊó¹ð¤·¤Þ¤¹¡£
ÁȤ߹þ¤ß´Ø¿ô unichr() ¤ª¤è¤Ó
ord() ¤Ï¡¢¥³¡¼¥Éñ°Ì¤ÈÈóÉé¤ÎÀ°¿ô¤Çɽ¤µ¤ì¤¿
Unicode ɸ½à 3.0 ¤ÇÄêµÁ¤µ¤ì¤¿ Unicode ½ø¿ô¤È¤Î´Ö¤ÇÊÑ´¹¤ò¹Ô¤¤¤Þ¤¹¡£
¾¤Îʸ»ú¥¨¥ó¥³¡¼¥É·Á¼°¤È¤ÎÁê¸ßÊÑ´¹¤Ï¡¢ Unicode ¥á¥½¥Ã¥É encode
¤ª¤è¤ÓÁȤ߹þ¤ß´Ø¿ô unicode()¤Ç¹Ô¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
Python ¤ËºÇ½é¤«¤éÁȤ߹þ¤Þ¤ì¤Æ¤¤¤ëÊѹ¹²Äǽ¤ÊÇÛÎ󷿤ϡ¢º£¤Î¤È¤³¤í °ì¤Ä¤À¤±¤Ç¤¹:
³ÈÄ¥¥â¥¸¥å¡¼¥ë array¤Ç¤Ï¡¢Ê̤ΠÊѹ¹²Äǽ¤ÊÇÛÎ󷿤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£
a[k]
¤Ï¡¢k
¤Ç¥¤¥ó¥Ç¥¯¥¹»ØÄê
¤µ¤ì¤¿Í×ÁǤò a
¤«¤éÁªÂò¤·¤Þ¤¹; ÁªÂò¤µ¤ì¤¿Í×ÁǤϼ°¤ÎÃæ¤Ç
»È¤¦¤³¤È¤¬¤Ç¤¡¢ÂåÆþ¤ä del ʸ¤ÎÂоݤˤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
ÁȤ߹þ¤ß´Ø¿ô len() ¤Ï¡¢¥Þ¥Ã¥×Æâ¤ÎÍ×ÁÇ¿ô¤òÊÖ¤·¤Þ¤¹¡£
Python ¤ËºÇ½é¤«¤éÁȤ߹þ¤Þ¤ì¤Æ¤¤¤ë¥Þ¥Ã¥×·¿¤Ï¡¢º£¤Î¤È¤³¤í °ì¤Ä¤À¤±¤Ç¤¹:
1
¤È 1.0
)¡¢
¸ß¤¤¤ËƱ¤¸¼½ñ¤Î¥¨¥ó¥È¥ê¤òɽ¤¹¥¤¥ó¥Ç¥¯¥¹¤È¤·¤Æ»È¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¼½ñ¤ÏÊѹ¹²Äǽ¤Ê·¿¤Ç¤¹; ¼½ñ¤Ï {...}
ɽµ¤ÇÀ¸À®¤·¤Þ¤¹
( 5.2.5 Àá, ``¼½ñɽ¸½'' ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤)¡£
³ÈÄ¥¥â¥¸¥å¡¼¥ë dbm¡¢ gdbm¡¢¤ª¤è¤Ó bsddb¤Ç¤Ï¡¢Ê̤Υޥå׷¿¤òÄó¶¡ ¤·¤Æ¤¤¤Þ¤¹¡£
ÆÃ¼ì°À: func_doc ¤Þ¤¿¤Ï __doc__ ¤Ï
´Ø¿ô¤Î¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥óʸ»úÎó¤Ç¤¹¡£¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó¤¬¤Ê¤¤
¾ì¹ç¤Ï None
¤Ë¤Ê¤ê¤Þ¤¹;
func_name ¤Þ¤¿¤Ï __name__ ¤Ï´Ø¿ô¤Î̾Á°¤Ç¤¹;
__module__ ¤Ï¡¢´Ø¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥â¥¸¥å¡¼¥ë¤Î̾Á°¤Ç¤¹¡£
¥â¥¸¥å¡¼¥ë̾¤¬¤Ê¤¤¾ì¹ç¤Ï None
¤Ë¤Ê¤ê¤Þ¤¹;
func_defaults ¤Ï¥Ç¥Õ¥©¥ë¥ÈÃͤò»ý¤Ä°ú¿ô¤ËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥ÈÃͤ¬
¼ý¤á¤é¤ì¤¿¥¿¥×¥ë¤Ç¡¢¥Ç¥Õ¥©¥ë¥ÈÃͤò»ý¤Ä°ú¿ô¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï None
¤Ë¤Ê¤ê¤Þ¤¹; func_code ¤Ï¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿´Ø¿ôËÜÂΤòɽ¸½¤¹¤ë
¥³¡¼¥É¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹; func_globals ¤Ï´Ø¿ô¤Î¥°¥í¡¼¥Ð¥ëÊÑ¿ô
¤ÎÆþ¤Ã¤¿¼½ñ (¤Ø¤Î»²¾È) ¤Ç¤¹ -- ¤³¤Î¼½ñ¤Ï¡¢´Ø¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë
¥â¥¸¥å¡¼¥ë¤Î¥°¥í¡¼¥Ð¥ë¤Ê̾Á°¶õ´Ö¤ò·èÄꤷ¤Þ¤¹; func_dict ¤Þ¤¿¤Ï
__dict__ ¤Ë¤Ï¡¢Ç¤°Õ¤Î´Ø¿ô°À¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¤Î̾Á°¶õ´Ö¤¬
¼ý¤á¤é¤ì¤Æ¤¤¤Þ¤¹; func_closure ¤Ï¡¢ None
¤Þ¤¿¤Ï
´Ø¿ô¤Î¸Ä¡¹¤Î¼«Í³ÊÑ¿ô¡Ê°ú¿ô°Ê³°¤ÎÊÑ¿ô¡Ë¤ËÂФ·¤ÆÃͤò·ë¤ÓÉÕ¤±¤Æ¤¤¤ë
¥»¥ë (cell) ·²¤«¤é¤Ê¤ë¥¿¥×¥ë¤Ë¤Ê¤ê¤Þ¤¹¡£
¾åµ¤Î¤¦¤Á¡¢func_code ¡¢ func_defaults ¡¢ func_doc/__doc__ ¡¢¤ª¤è¤Ó func_dict/__dict__ ¤Ï½ñ¤¹þ¤ß²Äǽ¤Ê°À¤Ç¤¹; ¾¤Î°À¤ÏÊѹ¹¤Ç¤¤Þ¤»¤ó¡£´Ø¿ôÄêµÁ¤Ë´Ø¤¹¤ë¤½¤Î¾¤Î¾ðÊó¤Ï¡¢ ´Ø¿ô¤Î¥³¡¼¥É¥ª¥Ö¥¸¥§¥¯¥È¤«¤éÆÀ¤é¤ì¤Þ¤¹; ¸å½Ò¤ÎÆâÉô·¿ (internal type) ¤Ë´Ø¤¹¤ëÀâÌÀ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
None
) ¤òǤ°Õ¤Î¸Æ¤Ó½Ð¤·²Äǽ¥ª¥Ö¥¸¥§¥¯¥È (Ä̾ï¤Ï
¥æ¡¼¥¶ÄêµÁ´Ø¿ô) ¤È·ë¹ç¤· (combine) ¤Þ¤¹¡£
ÆÉ¤ß½Ð¤·ÀìÍÑ¤ÎÆÃ¼ì°À: im_self ¤Ï
¥¯¥é¥¹¥¤¥ó¥¹¥¿¥ó¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Ç¡¢im_func ¤Ï´Ø¿ô¥ª¥Ö¥¸¥§¥¯¥È
¤Ç¤¹; im_class ¤Ï·ë¹ç¥á¥½¥Ã¥É (bound method) ¤Ë¤ª¤¤¤Æ
im_self ¤¬Â°¤·¤Æ¤¤¤ë¥¯¥é¥¹¤«¡¢¤¢¤ë¤¤¤ÏÈó·ë¹ç¥á¥½¥Ã¥É
(unbound method) ¤Ë¤ª¤¤¤Æ¡¢Í׵ᤵ¤ì¤¿¥á¥½¥Ã¥É¤òÄêµÁ¤·¤Æ¤¤¤ë
¥¯¥é¥¹¤Ç¤¹; __doc__ ¤Ï¥á¥½¥Ã¥É¤Î¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥óʸ»úÎó
(im_func.__doc__
¤ÈƱ¤¸) ¤Ç¤¹; __name__ ¤Ï¥á¥½¥Ã¥É¤Î
̾Á° (im_func.__name__
¤ÈƱ¤¸) ¤Ç¤¹; __module__ ¤Ï
¥á¥½¥Ã¥É¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥â¥¸¥å¡¼¥ë¤Î̾Á°¤Ë¤Ê¤ë¤«¡¢¥â¥¸¥å¡¼¥ë̾¤¬
¤Ê¤¤¾ì¹ç¤Ï None
¤Ë¤Ê¤ê¤Þ¤¹¡£
¥Ð¡¼¥¸¥ç¥ó2.2 °Ê¹ß¤ÇÊѹ¹¤µ¤ì¤¿ »ÅÍÍ:
¥á¥½¥Ã¥É¤òÄêµÁ¤·¤Æ¤¤¤ë¥¯¥é¥¹¤ò»²¾È¤¹¤ë¤¿¤á¤Ë
im_self ¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤·¤¿
¥á¥½¥Ã¥É¤â¤Þ¤¿¡¢º¬Äì¤Ë¤¢¤ë´Ø¿ô¥ª¥Ö¥¸¥§¥¯¥È¤ÎǤ°Õ¤Î´Ø¿ô°À ¤Ë (ÃͤÎÀßÄê¤Ï¤Ç¤¤Þ¤»¤ó¤¬) ¥¢¥¯¥»¥¹¤Ç¤¤Þ¤¹¡£
¥¯¥é¥¹¤Î°À¤ò (¤ª¤½¤é¤¯¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤ò²ð¤·¤Æ) ¼èÆÀ¤¹¤ëºÝ¤Ë¤Ï¡¢ ¤½¤Î°À¤¬¥æ¡¼¥¶ÄêµÁ¤Î´Ø¿ô¥ª¥Ö¥¸¥§¥¯¥È¡¢Èó·ë¹ç (unbound) ¤Î¥æ¡¼¥¶ÄêµÁ ¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¡¢¤¢¤ë¤¤¤Ï¥¯¥é¥¹¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¢¤ì¤Ð¡¢ ¥æ¡¼¥¶ÄêµÁ¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤¬À¸À®¤µ¤ì¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ °À¤¬¥æ¡¼¥¶ÄêµÁ¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ì¹ç¡¢Â°À¤ò¼èÆÀ¤¹¤ëÂоݤΠ¥ª¥Ö¥¸¥§¥¯¥È¤¬Â°¤¹¤ë¥¯¥é¥¹¤¬¤â¤È¤Î¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë ¥¯¥é¥¹¤ÈƱ¤¸¥¯¥é¥¹¤Ç¤¢¤ë¤«¡¢¤Þ¤¿¤Ï¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ì¤Ð¡¢¿·¤¿¤Ê ¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤À¤±¤¬À¸À®¤µ¤ì¤Þ¤¹¡£ ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¡¢¤â¤È¤Î¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤¬¤½¤Î¤Þ¤Þ»È¤ï¤ì¤Þ¤¹¡£
¥¯¥é¥¹¤«¤é¥æ¡¼¥¶ÄêµÁ´Ø¿ô¥ª¥Ö¥¸¥§¥¯¥È¤ò¼èÆÀ¤¹¤ëÊýË¡¤Ç¥æ¡¼¥¶ÄêµÁ
¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤¹¤ë¤È¡¢ im_self °À¤Ï
None
¤Ë¤Ê¤ê¡¢¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤ÏÈó·ë¹ç (unbound)
¤Ç¤¢¤ë¤È¤¤¤¤¤Þ¤¹¡£¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤«¤é¥æ¡¼¥¶ÄêµÁ´Ø¿ô
¥ª¥Ö¥¸¥§¥¯¥È¤ò¼èÆÀ¤¹¤ëÊýË¡¤Ç¥æ¡¼¥¶ÄêµÁ¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤ò
À¸À®¤¹¤ë¤È¡¢im_self °À¤Ï¥¤¥ó¥¹¥¿¥ó¥¹¤Ë¤Ê¤ê¡¢
¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤Ï·ë¹ç (bound) ¤Ç¤¢¤ë¤È¤¤¤¤¤Þ¤¹¡£
¤É¤Á¤é¤Î¾ì¹ç¤â¡¢¿·¤¿¤Ê¥á¥½¥Ã¥É¤Î im_class °À¤Ï¡¢
¥á¥½¥Ã¥É¤Î¼èÆÀ¤¬¹Ô¤ï¤ì¤¿¥¯¥é¥¹¤Ë¤Ê¤ê¡¢im_func °À¤Ï
¤â¤È¤Î´Ø¿ô¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ê¤ê¤Þ¤¹¡£
¥¯¥é¥¹¤ä¥¤¥ó¥¹¥¿¥ó¥¹¤«¤é¾¤Î¥æ¡¼¥¶ÄêµÁ¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤ò ¼èÆÀ¤¹¤ëÊýË¡¤Ç¥æ¡¼¥¶ÄêµÁ¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¤¿¾ì¹ç¡¢ ¤½¤Îưºî¤Ï´Ø¿ô¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ì¹ç¤ÈƱÍͤǤ¹¤¬¡¢¿·¤¿¤Ê¥¤¥ó¥¹¥¿¥ó¥¹¤Î im_func °À¤Ï¤â¤È¤Î¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤Î°À¤Ç¤Ï¤Ê¤¯¡¢ ¿·¤¿¤Ê¥¤¥ó¥¹¥¿¥ó¥¹¤Î°À¤Ë¤Ê¤ê¤Þ¤¹¡£
¥¯¥é¥¹¤ä¥¤¥ó¥¹¥¿¥ó¥¹¤«¤é¥¯¥é¥¹¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤ò¼èÆÀ¤¹¤ë ÊýË¡¤Ç¥æ¡¼¥¶ÄêµÁ¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¤¿¾ì¹ç¡¢ im_self °À¤Ï¥¯¥é¥¹¼«ÂÎ (im_class °À¤È Ʊ¤¸) ¤È¤Ê¤ê¡¢im_func °À¤Ï¥¯¥é¥¹¥á¥½¥Ã¥É¤Îº¬Äì¤Ë ¤¢¤ë´Ø¿ô¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ê¤ê¤Þ¤¹¡£
Èó·ë¹ç¥æ¡¼¥¶ÄêµÁ¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤Î¸Æ¤Ó½Ð¤·¤ÎºÝ¤Ë¤Ï¡¢ º¬Äì¤Ë¤¢¤ë´Ø¿ô (im_func) ¤¬¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£¤³¤Î¤È¤¡¢ ºÇ½é¤Î°ú¿ô¤ÏŬÀڤʥ¯¥é¥¹ (im_class) ¤Þ¤¿¤Ï¥µ¥Ö¥¯¥é¥¹¤Î ¥¤¥ó¥¹¥¿¥ó¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤È¤¤¤¦À©¸Â¤¬²Ý¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
·ë¹ç¥æ¡¼¥¶ÄêµÁ¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤Î¸Æ¤Ó½Ð¤·¤ÎºÝ¤Ë¤Ï¡¢
º¬Äì¤Ë¤¢¤ë´Ø¿ô (im_func) ¤¬¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£¤³¤Î¤È¤¡¢
¥¯¥é¥¹¥¤¥ó¥¹¥¿¥ó¥¹ (im_self) ¤¬°ú¿ô¤ÎÀèÆ¬¤ËÁÞÆþ¤µ¤ì
¤Þ¤¹¡£Î㤨¤Ð¡¢´Ø¿ô f() ¤ÎÄêµÁ¤¬Æþ¤Ã¤¿¥¯¥é¥¹¤ò C
¤È¤·¡¢x
¤ò C ¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤È¤¹¤ë¤È¡¢
x.f(1)
¤Î¸Æ¤Ó½Ð¤·¤Ï C.f(x, 1)
¤ÈƱ¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£
¥æ¡¼¥¶ÄêµÁ¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤¬¥¯¥é¥¹¥ª¥Ö¥¸¥§¥¯¥È¤«¤éƳ½Ð¤µ¤ì¤ëºÝ¡¢
im_self ¤Ëµ²±¤µ¤ì¤Æ¤¤¤ë ``¥¯¥é¥¹¥¤¥ó¥¹¥¿¥ó¥¹'' ¤Ï¥¯¥é¥¹
¼«ÂΤˤʤê¤Þ¤¹¡£¤³¤ì¤Ï¡¢x.f(1)
¤ä C.f(1)
¤Î¸Æ¤Ó½Ð¤·¤¬
º¬Äì¤Ë¤¢¤ë´Ø¿ô¤ò f
¤È¤·¤¿¤È¤¤Î¸Æ¤Ó½Ð¤· f(C,1)
¤È
Åù²Á¤Ë¤Ê¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ç¤¹¡£
´Ø¿ô¥ª¥Ö¥¸¥§¥¯¥È¤«¤é (·ë¹ç¤Þ¤¿¤ÏÈó·ë¹ç¤Î) ¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î ÊÑ´¹¤Ï¡¢¥¯¥é¥¹¤ä¥¤¥ó¥¹¥¿¥ó¥¹¤«¤é°À¤ò¼è¤ê½Ð¤¹¤¿¤Ó¤Ë¹Ô¤ï¤ì¤ë¤Î¤Ç Ãí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¡¢Â°À¤ò¥í¡¼¥«¥ë¤ÊÊÑ¿ô¤ËÂåÆþ¤·¤Æ ¤ª¤¡¢¤½¤ÎÊÑ¿ô¤ò»È¤Ã¤Æ´Ø¿ô¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦¤È¸ú²ÌŪ¤ÊºÇŬ²½¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤Þ¤¿¡¢¾åµ¤ÎÊÑ´¹¤Ï¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤ËÂФ·¤Æ¤Î¤ßµ¯¤³¤ë¤Î¤ÇÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤; ¤½¤Î¾¤Î¸Æ¤Ó½Ð¤·²Äǽ¥ª¥Ö¥¸¥§¥¯¥È (¤ª¤è¤Ó¸Æ¤Ó½Ð¤·²Äǽ¤Ç¤Ê¤¤Á´¤Æ¤Î ¥ª¥Ö¥¸¥§¥¯¥È) ¤Ï¡¢ÊÑ´¹¤ò¼õ¤±¤º¤Ë¼è¤ê½Ð¤µ¤ì¤Þ¤¹¡£¤½¤ì¤«¤é¡¢ ¥¯¥é¥¹¥¤¥ó¥¹¥¿¥ó¥¹¤Î°À¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤Ï¡¢·ë¹ç¥á¥½¥Ã¥É¤Ë ÊÑ´¹¤Ç¤¤Ê¤¤¤ÈÃΤäƤª¤¯¤³¤È¤â½ÅÍפǤ¹; ·ë¹ç¥á¥½¥Ã¥É¤Ø¤ÎÊÑ´¹¤¬ ¹Ô¤ï¤ì¤ë¤Î¤Ï¡¢´Ø¿ô¤¬¥¯¥é¥¹¤Î°ì°À¤Ç¤¢¤ë¾ì¹ç ¤À¤± ¤Ç¤¹¡£
None
¤Ë¤Ê¤ê¤Þ¤¹;
__name__ ¤Ï´Ø¿ô¤Î̾Á°¤Ç¤¹; __self__ ¤Ï None
¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹ (ÁȤ߹þ¤ß¥á¥½¥Ã¥É¤ÎÀá¤â»²¾È¤·¤Æ¤¯¤À¤µ¤¤);
__module__ ¤Ï¡¢´Ø¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥â¥¸¥å¡¼¥ë¤Î̾Á°¤Ç¤¹¡£
¥â¥¸¥å¡¼¥ë̾¤¬¤Ê¤¤¾ì¹ç¤Ï None
¤Ë¤Ê¤ê¤Þ¤¹¡£
alist.append()
¤Ç¤¹¡£
¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ÆÉ¤ß½Ð¤·ÀìÍѤΰÀ __self__ ¤Ï
alist ¤Çɽ¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ê¤ê¤Þ¤¹¡£
x(arguments)
¤È¤¹¤ë¤È¡¢
x.__call__(arguments)
¸Æ¤Ó½Ð¤·¤òû¤¯½ñ¤±¤Þ¤¹¡£
m.x
¤Ï m.__dict__["x"]
¤ÈƱ¤¸¤Ç¤¹¡£
¥â¥¸¥å¡¼¥ë¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ï¡¢¥â¥¸¥å¡¼¥ë¤ò½é´ü²½¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë
¥³¡¼¥É¥ª¥Ö¥¸¥§¥¯¥È¤ÏÆþ¤Ã¤Æ¤¤¤Þ¤»¤ó (°ìÅÙ½é´ü²½¤¬½ª¤ï¤ì¤Ð¤â¤¦É¬Í×
¤Ê¤¤¤«¤é¤Ç¤¹)¡£
°À¤ÎÂåÆþ¤ò¹Ô¤¦¤È¡¢¥â¥¸¥å¡¼¥ë¤Î̾Á°¶õ´Ö¼½ñ¤ÎÆâÍÆ¤ò¹¹¿·¤·¤Þ¤¹¡£ Î㤨¤Ð¡¢ "m.x = 1" ¤Ï "m.__dict__["x"] = 1" ¤ÈƱ¤¸¤Ç¤¹¡£
ÆÉ¤ß½Ð¤·ÀìÍÑ¤ÎÆÃ¼ì°À: __dict__ ¤Ï¥â¥¸¥å¡¼¥ë¤Î̾Á°¶õ´Ö¤Ç¡¢ ¼½ñ¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡£
ÄêµÁºÑ¤ß¤Î (½ñ¤¹þ¤ß²Äǽ¤Ê) °À: __name__
¤Ï¥â¥¸¥å¡¼¥ë¤Î̾Á°¤Ç¤¹;
__doc__ ¤Ï´Ø¿ô¤Î¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó
ʸ»úÎó¤Ç¤¹¡£¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó¤¬¤Ê¤¤¾ì¹ç¤Ï None
¤Ë¤Ê¤ê¤Þ¤¹;
¥â¥¸¥å¡¼¥ë¤¬¥Õ¥¡¥¤¥ë¤«¤é¥í¡¼¥É¤µ¤ì¤¿¾ì¹ç¡¢ __file__ ¤Ï¥í¡¼¥É
¤µ¤ì¤¿¥â¥¸¥å¡¼¥ë¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹Ì¾¤Ç¤¹¡£¥¤¥ó¥¿¥×¥ê¥¿¤ËÀÅŪ¤Ë¥ê¥ó¥¯¤µ¤ì¤Æ
¤¤¤ë C ¥â¥¸¥å¡¼¥ë¤Î¾ì¹ç¡¢__file__ °À¤Ï¤¢¤ê¤Þ¤»¤ó;
¶¦Í¥é¥¤¥Ö¥é¥ê¤«¤éưŪ¤Ë¥í¡¼¥É¤µ¤ì¤¿³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Î¾ì¹ç¡¢¤³¤Î°À¤Ï
¶¦Í¥é¥¤¥Ö¥é¥ê¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹Ì¾¤Ë¤Ê¤ê¤Þ¤¹¡£
C.x
¤Ï C.__dict__["x"]
¤ÈƱ¤¸¤Ç¤¹¡£
°À¤¬¤³¤Î¸¡º÷¤Ç¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¡¢¸½ºß¤Î¥¯¥é¥¹¤Î´ðÄ쥯¥é¥¹¤Ø¤È
¸¡º÷¤ò³¤±¤Þ¤¹¡£¸¡º÷¤Ï¿¼¤µÍ¥Àè (depth-first)¡¢¤«¤Ä´ðÄ쥯¥é¥¹¤Î
µó¤²¤é¤ì¤Æ¤¤¤ë¥ê¥¹¥ÈÃæ¤Îº¸¤«¤é±¦ (left-to-right) ¤Î½çÈ֤ǹԤï¤ì
¤Þ¤¹¡£
¥¯¥é¥¹ (C ¤È¤·¤Þ¤¹) ¤Ø¤Î°À»²¾È¤Ç¡¢Í׵ᤷ¤Æ¤¤¤ë°À¤¬ ¥æ¡¼¥¶ÄêµÁ´Ø¿ô¥ª¥Ö¥¸¥§¥¯¥È¤ä¡¢C ¤ä¤½¤Î´ðÄ쥯¥é¥¹¤Ë´ØÏ¢ÉÕ¤± ¤é¤ì¤Æ¤¤¤ëÈó·ë¹ç¤Î¥æ¡¼¥¶ÄêµÁ¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¢¤ë¾ì¹ç¡¢ im_class °À¤¬ C ¤Ç¤¢¤ë¤è¤¦¤ÊÈó·ë¹ç¥æ¡¼¥¶ÄêµÁ ¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤ËÊÑ´¹¤µ¤ì¤Þ¤¹¡£ Í׵ᤷ¤Æ¤¤¤ë°À¤¬¥¯¥é¥¹¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ì¹ç¡¢ im_class ¤È im_self °À¤¬¤É¤Á¤é¤â C ¤Ç¤¢¤ë¤è¤¦¤Ê¥æ¡¼¥¶ÄêµÁ¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤ËÊÑ´¹¤µ¤ì¤Þ¤¹¡£ Í׵ᤷ¤Æ¤¤¤ë°À¤¬ÀÅŪ¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ì¹ç¡¢ÀÅŪ¥á¥½¥Ã¥É ¥ª¥Ö¥¸¥§¥¯¥È¤Ç¥é¥Ã¥×¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤ËÊÑ´¹¤µ¤ì¤Þ¤¹¡£ ¥¯¥é¥¹¤«¤é¼è¤ê½Ð¤·¤¿Â°À¤È¼ÂºÝ¤Ë __dict__ ¤ËÆþ¤Ã¤Æ¤¤¤ë ¤â¤Î¤¬°Û¤Ê¤ë¤è¤¦¤Ê¾¤Î¾ì¹ç¤Ë¤Ä¤¤¤Æ¤Ï¡¢ 3.3.2 Àá¤ò »²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
¥¯¥é¥¹Â°À¤òÂåÆþ¤¹¤ë¤È¡¢¤½¤Î¥¯¥é¥¹¤Î¼½ñ¤À¤±¤¬¹¹¿·¤µ¤ì¡¢´ðÄ쥯¥é¥¹¤Î ¼½ñ¤Ï¹¹¿·¤·¤Þ¤»¤ó¡£
¥¯¥é¥¹¥ª¥Ö¥¸¥§¥¯¥È¤ò¸Æ¤Ó½Ð¤¹ (¾åµ¤ò»²¾È) ¤È¡¢¥¯¥é¥¹¥¤¥ó¥¹¥¿¥ó¥¹¤ò À¸À®¤·¤Þ¤¹ (²¼µ¤ò»²¾È)¡£
ÆÃ¼ì°À: __name__ ¤Ï¥¯¥é¥¹Ì¾¤Ç¤¹;
__module__ ¤Ï¥¯¥é¥¹¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥â¥¸¥å¡¼¥ë¤Î̾Á°¤Ç¤¹;
__dict__ ¤Ï¥¯¥é¥¹¤Î̾Á°¶õ´Ö¤¬Æþ¤Ã¤¿¼½ñ¤Ç¤¹;
__bases__ ¤Ï´ðÄ쥯¥é¥¹¤ÎÆþ¤Ã¤¿ (¶õ¡¢¤¢¤ë¤¤¤ÏñÍ×ÁǤò¼è¤ê¤¨¤ë)
¥¿¥×¥ë¤Ç¡¢´ðÄ쥯¥é¥¹¥ê¥¹¥È¤Î½çÈ֤ˤʤäƤ¤¤Þ¤¹; __doc__ ¤Ï
¥¯¥é¥¹¤Î¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥óʸ»úÎó¤Ç¤¹¡£¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥óʸ»úÎó¤¬
¤Ê¤¤¾ì¹ç¤Ë¤Ï None
¤Ë¤Ê¤ê¤Þ¤¹¡£
°À¤ÎÂåÆþ¤äºï½ü¤ò¹Ô¤¦¤È¡¢¥¤¥ó¥¹¥¿¥ó¥¹¤Î¼½ñ¤ò¹¹¿·¤·¤Þ¤¹¤¬¡¢¥¯¥é¥¹¤Î ¼½ñ¤ò¹¹¿·¤¹¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£¥¯¥é¥¹¤Ç __setattr__() ¤ä __delattr__() ¥á¥½¥Ã¥É¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢Ä¾ÀÜ¥¤¥ó¥¹¥¿¥ó¥¹¤Î ¼½ñ¤ò¹¹¿·¤¹¤ëÂå¤ï¤ê¤Ë¤³¤ì¤é¤Î¥á¥½¥Ã¥É¤¬¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
¥¯¥é¥¹¥¤¥ó¥¹¥¿¥ó¥¹¤Ï¡¢¤¢¤ëÆÃÄê¤Î̾Á°¤Î¥á¥½¥Ã¥É¤ò»ý¤Ã¤Æ¤¤¤ë ¾ì¹ç¡¢¿ôÃÍ·¿¤äÇÛÎó·¿¡¢¤¢¤ë¤¤¤Ï¥Þ¥Ã¥×·¿¤Î¤è¤¦¤Ë¿¶Éñ¤¦¤³¤È¤¬ ¤Ç¤¤Þ¤¹¡£ 3.3 Àá¡¢ ``ÆÃ¼ì¥á¥½¥Ã¥É̾'' ¤ò»²¾È ¤·¤Æ¤¯¤À¤µ¤¤¡£
ÆÃ¼ì°À: __dict__ ¤Ï°À¤Î¼½ñ¤Ç¤¹; __class__ ¤Ï¥¤¥ó¥¹¥¿¥ó¥¹¤Î¥¯¥é¥¹¤Ç¤¹¡£
sys.stdout
¤ª¤è¤Ó
sys.stderr
¤È¤¤¤Ã¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢
¥¤¥ó¥¿¥×¥ê¥¿¤Îɸ½àÆþÎϢɸ½à½ÐÎÏ¡¢¤ª¤è¤Óɸ½à¥¨¥é¡¼½ÐÎÏ
¥¹¥È¥ê¡¼¥à¤ËÂбþ¤¹¤ë¤è¤¦½é´ü²½¤µ¤ì¤Þ¤¹¡£¥Õ¥¡¥¤¥ë¥ª¥Ö¥¸¥§¥¯¥È¤Ë
´Ø¤¹¤ë´°Á´¤Êµ½Ò¤Ë¤Ä¤¤¤Æ¤Ï¡¢Python ¥é¥¤¥Ö¥é¥ê
¥ê¥Õ¥¡¥ì¥ó¥¹ ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
ÆÉ¤ß½Ð¤·ÀìÍÑ¤ÎÆÃ¼ì°À: co_name ¤Ï´Ø¿ô̾¤òɽ¤·¤Þ¤¹; co_argcount ¤Ï¸ÇÄê°ú¿ô (positional argument) ¤Î¿ô¤Ç¤¹; co_nlocals ¤Ï´Ø¿ô¤¬»È¤¦ (°ú¿ô¤ò´Þ¤á¤¿) ¥í¡¼¥«¥ëÊÑ¿ô¤Î¿ô¤Ç¤¹; co_varnames ¤Ï¥í¡¼¥«¥ëÊÑ¿ô̾¤ÎÆþ¤Ã¤¿¥¿¥×¥ë¤Ç¤¹ (°ú¿ô̾ ¤«¤é»Ï¤Þ¤Ã¤Æ¤¤¤Þ¤¹); co_cellvars ¤Ï¥Í¥¹¥È¤µ¤ì¤¿´Ø¿ô¤Ç »²¾È¤µ¤ì¤Æ¤¤¤ë¥í¡¼¥«¥ëÊÑ¿ô¤Î̾Á°¤¬Æþ¤Ã¤¿¥¿¥×¥ë¤Ç¤¹; co_freevars ¤Ï¼«Í³ÊÑ¿ô¤Î̾Á°¤¬Æþ¤Ã¤¿¥¿¥×¥ë¤Ç¤¹¡£ co_code ¤Ï¥Ð¥¤¥È¥³¡¼¥ÉÎó¤òɽ¸½¤·¤Æ¤¤¤ëʸ»úÎó¤Ç¤¹; co_consts ¤Ï¥Ð¥¤¥È¥³¡¼¥É¤Ç»È¤ï¤ì¤Æ¤¤¤ë¥ê¥Æ¥é¥ë¤ÎÆþ¤Ã¤¿ ¥¿¥×¥ë¤Ç¤¹; co_names ¤Ï¥Ð¥¤¥È¥³¡¼¥É¤Ç»È¤ï¤ì¤Æ¤¤¤ë̾Á° ¤ÎÆþ¤Ã¤¿¥¿¥×¥ë¤Ç¤¹; co_filename ¤Ï¥Ð¥¤¥È¥³¡¼¥É¤Î¥³¥ó¥Ñ¥¤¥ë ¤¬¹Ô¤ï¤ì¤¿¥Õ¥¡¥¤¥ë̾¤Ç¤¹; co_firstlineno ¤Ï´Ø¿ô¤ÎºÇ½é¤Î ¹ÔÈÖ¹æ¤Ç¤¹; co_lnotab ¤Ï¥Ð¥¤¥È¥³¡¼¥É¥ª¥Õ¥»¥Ã¥È¤«¤é¹ÔÈÖ¹æ ¤Ø¤ÎÂбþÉÕ¤±¤ò¥³¡¼¥É²½¤·¤¿Ê¸»úÎó¤Ç¤¹ (¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¥¤¥ó¥¿¥×¥ê¥¿¤Î ¥½¡¼¥¹¥³¡¼¥É¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤); co_stacksize ¤Ï´Ø¿ô¤Ç (¥í¡¼¥«¥ëÊÑ¿ô¤Îʬ¤â´Þ¤á¤Æ) ɬÍפʥ¹¥¿¥Ã¥¯¥µ¥¤¥º¤Ç¤¹; co_flags ¤Ï¥¤¥ó¥¿¥×¥ê¥¿ÍѤÎÍÍ¡¹¤Ê¥Õ¥é¥°¤ò¥³¡¼¥É²½¤·¤¿ À°¿ô¤Ç¤¹¡£
°Ê²¼¤Î¥Õ¥é¥°¥Ó¥Ã¥È¤¬ co_flags ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹:
0x04
¥Ó¥Ã¥È¤Ï¡¢´Ø¿ô¤¬ "*arguments" ¹½Ê¸¤ò»È¤Ã¤Æ
Ǥ°Õ¤Î¿ô¤Î¸ÇÄê°ú¿ô¤ò¼õÍý¤Ç¤¤ë¾ì¹ç¤ËΩ¤Æ¤é¤ì¤Þ¤¹;
0x08
¥Ó¥Ã¥È¤Ï¡¢´Ø¿ô¤¬ "**keywords" ¹½Ê¸¤ò»È¤Ã¤Æ
¥¡¼¥ï¡¼¥É°ú¿ô¤ò¼õÍý¤Ç¤¤ë¾ì¹ç¤ËΩ¤Æ¤é¤ì¤Þ¤¹;
0x20
¥Ó¥Ã¥È¤Ï¡¢´Ø¿ô¤¬¥¸¥§¥Í¥ì¡¼¥¿¤Ç¤¢¤ë¾ì¹ç¤ËΩ¤Æ¤é¤ì¤Þ¤¹¡£
¾Í赡ǽ (future feature) Àë¸À ("from __future__ import division")
¤â¤Þ¤¿¡¢co_flags ¤Î¥Ó¥Ã¥È¤òΩ¤Æ¤ë¤³¤È¤Ç¡¢¥³¡¼¥É¥ª¥Ö¥¸¥§¥¯¥È¤¬
ÆÃÄê¤Îµ¡Ç½¤ò͸ú¤Ë¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò¼¨¤·¤Þ¤¹:
0x2000
¥Ó¥Ã¥È¤Ï¡¢´Ø¿ô¤¬¾Í赡ǽ¤ò͸ú¤Ë¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ
¤¤¤ë¾ì¹ç¤ËΩ¤Æ¤é¤ì¤Þ¤¹; °ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î Python ¤Ç¤Ï¡¢0x10
¤ª¤è¤Ó 0x1000
¥Ó¥Ã¥È¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤·¤¿¡£
co_flags ¤Î¤½¤Î¾¤Î¥Ó¥Ã¥È¤Ï¾Íè¤ËÆâÉôŪ¤ËÍøÍѤ¹¤ë¤¿¤á¤Ë ͽÌó¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¥³¡¼¥É¥ª¥Ö¥¸¥§¥¯¥È¤¬´Ø¿ô¤òɽ¸½¤·¤Æ¤¤¤ë¾ì¹ç¡¢co_consts ¤ÎºÇ½é¤Î
Í×ÁǤϴؿô¤Î¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥óʸ»úÎó
¤Ë¤Ê¤ê¤Þ¤¹¡£¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥óʸ»úÎó¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï
None
¤Ë¤Ê¤ê¤Þ¤¹¡£
ÆÉ¤ß½Ð¤·ÀìÍÑ¤ÎÆÃ¼ì°À: f_back ¤Ï (¸Æ¤Ó½Ð¤·Â¦¤Ë¤È¤Ã¤Æ¤Î)
°ÊÁ°¤Î¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤Ç¤¹¡£¸Æ¤Ó½Ð¤·Â¦¤¬¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤ÎºÇ²¼ÃʤÇ
¤¢¤ë¾ì¹ç¤Ë¤Ï None
¤Ç¤¹; f_code ¤Ï¸½ºß¤Î¥Õ¥ì¡¼¥à¤Ç
¼Â¹Ô¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¥³¡¼¥É¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹; f_locals
¤Ï¥í¡¼¥«¥ëÊÑ¿ô¤ò¸¡º÷¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¼½ñ¤Ç¤¹;
f_globals ¤Ï¥°¥í¡¼¥Ð¥ëÊÑ¿ôÍѤǤ¹;
f_builtins ¤ÏÁȤ߹þ¤ß¤Î (Python ¸ÇͤÎ) ̾Á°¤Ç¤¹;
f_restricted ¤Ï¡¢´Ø¿ô¤¬À©¸Â¤Ä¤¼Â¹Ô (restricted execution)
¥â¡¼¥É¤Ç¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò¼¨¤¹¥Õ¥é¥°¤Ç¤¹; f_lasti
¤Ï¸·Ì©¤ÊÌ¿Îᥳ¡¼¥É (¥³¡¼¥É¥ª¥Ö¥¸¥§¥¯¥ÈÃæ¤Î¥Ð¥¤¥È¥³¡¼¥Éʸ»úÎ󤨤Î
¥¤¥ó¥Ç¥¯¥¹) ¤Ç¤¹¡£
½ñ¤¹þ¤ß²Äǽ¤ÊÆÃ¼ì°À: f_trace ¤¬ None
¤Ç¤Ê¤¤¾ì¹ç¡¢
³Æ¥½¡¼¥¹¥³¡¼¥É¹Ô¤ÎÀèÆ¬¤Ç¸Æ¤Ó½Ð¤µ¤ì¤ë´Ø¿ô¤Ë¤Ê¤ê¤Þ¤¹;
f_exc_type, f_exc_value, f_exc_traceback
¤Ï¡¢¸½ºß¤Î¥Õ¥ì¡¼¥à¤Ç¤â¤Ã¤È¤âºÇ¶áÊ᪤µ¤ì¤¿Îã³°¤òɽ¤·¤Þ¤¹;
f_lineno ¤Ï¥Õ¥ì¡¼¥àÃæ¤Ë¤ª¤±¤ë¸½ºß¤Î¹ÔÈÖ¹æ¤Ç¤¹ -- ¥È¥ì¡¼¥¹´Ø¿ô
(trace function) ¦¤Ç¤³¤ÎÃͤ˽ñ¤¹þ¤ß¤ò¹Ô¤¦¤È¡¢»ØÄꤷ¤¿¹Ô¤Ë¥¸¥ã¥ó¥×
¤·¤Þ¤¹ (ºÇ²¼Ãʤμ¹ԥե졼¥à¤Ë¤¤¤ë¤È¤¤Î¤ß) ¡£¥Ç¥Ð¥Ã¥¬¤Ç¤Ï¡¢
f_fileno ¤ò½ñ¤¹þ¤à¤³¤È¤Ç¡¢¥¸¥ã¥ó¥×Ì¿Îá (Set Next Statement Ì¿Îá¤È¤â
¸Æ¤Ð¤ì¤Þ¤¹) ¤ò¼ÂÁõ¤Ç¤¤Þ¤¹¡£
try
ʸ'' ¤ò»²¾È)¡£
¥È¥ì¡¼¥¹¥Ð¥Ã¥¯¤Ï sys.exc_traceback
¤È¤·¤ÆÆÀ¤ë¤³¤È¤¬¤Ç¤¡¢
sys.exc_info()
¤¬ÊÖ¤¹¥¿¥×¥ë¤Î»°ÈÖÌܤÎÍ×ÁǤȤ·¤Æ¤âÆÀ¤é¤ì¤Þ¤¹.
¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¤·¤Æ¤Ï¸å¼Ô¤ÎÊý¤¬¿ä¾©¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¤³¤ì¤Ï
¥×¥í¥°¥é¥à¤¬¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤ËÀµ¤·¤¯Æ°ºî¤¹¤ë¤«¤é¤Ç¤¹¡£
¥×¥í¥°¥é¥à¤ËŬÀڤʥϥó¥É¥é¤¬¤Ê¤¤¾ì¹ç¡¢¥¹¥¿¥Ã¥¯¥È¥ì¡¼¥¹¤Ï (¤¦¤Þ¤¯
½ñ¼°²½¤µ¤ì¤Æ) ɸ½à¥¨¥é¡¼¥¹¥È¥ê¡¼¥à¤Ë½ñ¤½Ð¤µ¤ì¤Þ¤¹; ¥¤¥ó¥¿¥×¥ê¥¿¤¬
ÂÐÏÃŪ¤Ë¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢sys.last_traceback
¤È¤·¤Æ
ÆÀ¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
ÆÉ¤ß½Ð¤·ÀìÍÑ¤ÎÆÃ¼ì°À: tb_next ¤Ï¥¹¥¿¥Ã¥¯¥È¥ì¡¼¥¹Æâ¤Î
(Îã³°¤ÎȯÀ¸¤·¤Æ¤¤¤ë¥Õ¥ì¡¼¥à¤Ë¸þ¤«¤Ã¤Æ) ¼¡¤Î¥ì¥Ù¥ë¤Ç¤¹¡£
¼¡¤Î¥ì¥Ù¥ë¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï None
¤Ë¤Ê¤ê¤Þ¤¹;
tb_frame ¤Ï¸½ºß¤Î¥ì¥Ù¥ë¤Ë¤ª¤±¤ë¼Â¹Ô¥Õ¥ì¡¼¥à¤ò»Ø¤·¤Þ¤¹;
tb_lineno ¤ÏÎã³°¤ÎȯÀ¸¤·¤¿¹ÔÈÖ¹æ¤Ç¤¹; tb_lasti
¤Ï¸·Ì©¤ÊÌ¿Îᥳ¡¼¥É¤Ç¤¹¡£¥È¥ì¡¼¥¹¥Ð¥Ã¥¯Æâ¤Î¹ÔÈÖ¹æ¤äºÇ¸å¤Ë¼Â¹Ô¤µ¤ì¤¿
Ì¿Îá¤Ï¡¢try ʸÆâ¤ÇÎã³°¤¬È¯À¸¤·¡¢¤«¤ÄÂбþ¤¹¤ë
except Àá¤ä finally À᤬¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢
¥Õ¥ì¡¼¥à¥ª¥Ö¥¸¥§¥¯¥ÈÆâ¤Î¹ÔÈÖ¹æ¤È¤Ï°Û¤Ê¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
a[i:j:step]
¡¢ a[i:j, k:l]
¡¢
¤¢¤ë¤¤¤Ï a[..., i:j]
¤Ç¤¹¡£¥¹¥é¥¤¥¹¥ª¥Ö¥¸¥§¥¯¥È¤ÏÁȤ߹þ¤ß´Ø¿ô
slice() ¤ÇÀ¸À®¤µ¤ì¤Þ¤¹¡£
ÆÉ¤ß½Ð¤·ÀìÍÑ¤ÎÆÃ¼ì°À: start ¤Ï²¼¶³¦ (lower bound) ¤Ç¤¹;
stop ¤Ï¾å¶³¦ (upper bound) ¤Ç¤¹; step ¤Ï¥¹¥Æ¥Ã¥×ÃÍ
(step value) ¤Ç¤¹; ¤½¤ì¤¾¤ì¾Êά¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï None
¤Ë¤Ê¤ê¤Þ¤¹¡£
¤³¤ì¤é¤Î°À¤ÏǤ°Õ¤Î·¿¤ÎÃͤò¤È¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¥¹¥é¥¤¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Ï¥á¥½¥Ã¥É¤ò°ì¤Ä¥µ¥Ý¡¼¥È¤·¤Þ¤¹:
self, length) |
¤´°Õ¸«¤ä¤´»ØÅ¦¤ò¤ª´ó¤»¤Ë¤Ê¤ê¤¿¤¤Êý¤Ï¡¢ ¤³¤Î¥É¥¥å¥á¥ó¥È¤Ë¤Ä¤¤¤Æ... ¤ò¤´Í÷¤¯¤À¤µ¤¤¡£