3.2 ɸ½à·¿¤Î³¬ÁØ

°Ê²¼¤Ï Python ¤ËÁȤ߹þ¤Þ¤ì¤Æ¤¤¤ë·¿¤Î¥ê¥¹¥È¤Ç¤¹¡£(C¡¢Java¡¢¤Þ¤¿¤Ï ¼ÂÁõ¤Ë»È¤ï¤ì¤Æ¤¤¤ë¤½¤Î¾¤Î¸À¸ì¤Ç½ñ¤«¤ì¤¿) ³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Ç¤Ï¡¢ ¤½¤Î¾¤Ë¿·¤¿¤Ê·¿¤òÄêµÁ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Î Python ¤Ç¤Ï¡¢·¿¤Î³¬Áؤ˿·¤¿¤Ê·¿ (À°¿ô¤ò»È¤Ã¤Æ¸úΨŪ¤Ëµ­²±¤µ¤ì¤ë Í­Íý¿ô·¿¡¢¤Ê¤É) ¤òÄɲ乤뤳¤È¤¬¤Ç¤­¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£

°Ê²¼¤ËÀâÌÀ¤¹¤ë·¿¤Î¤¤¤¯¤Ä¤«¤Ë¤Ï¡¢`ÆÃ¼ì°À­ (special attribute)' ¤ÈÂꤵ¤ì¤¿ÃÊÍϢ¤Í¤é¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤é¤Î°À­¤Ï¼ÂÁõ¤Ø¤Î¥¢¥¯¥»¥¹ ¼êÃʤòÄ󶡤¹¤ë¤â¤Î¤Ç¡¢°ìÈÌŪ¤ÊÍÑÅÓ¤ËÍøÍѤ¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ÆÃ¼ì°À­¤ÎÄêµÁ¤Ï¾­ÍèÊѹ¹¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£

None
¤³¤Î·¿¤Ë¤Ïñ°ì¤ÎÃͤ·¤«¤¢¤ê¤Þ¤»¤ó¡£¤³¤ÎÃͤò»ý¤Ä¥ª¥Ö¥¸¥§¥¯¥È¤Ï¤¿¤À °ì¤Ä¤·¤«Â¸ºß¤·¤Þ¤»¤ó¡£¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ÏÁȤ߹þ¤ß̾ None ¤Ç¥¢¥¯¥»¥¹¤µ¤ì¤Þ¤¹¡£¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢ÍÍ¡¹¤Ê¾õ¶·¤ÇÃͤ¬ ¸ºß¤·¤Ê¤¤¤³¤È¤ò¤·¤á¤·¤Þ¤¹¡£Î㤨¤Ð¡¢ÌÀ¼¨Åª¤ËÃͤòÊÖ¤µ¤Ê¤¤´Ø¿ô ¤Ï None ¤òÊÖ¤·¤Þ¤¹¡£None ¤Î¿¿ÃÍ (truth value) ¤Ï µ¶ (false) ¤Ç¤¹¡£

NotImplemented
¤³¤Î·¿¤Ë¤Ïñ°ì¤ÎÃͤ·¤«¤¢¤ê¤Þ¤»¤ó¡£¤³¤ÎÃͤò»ý¤Ä¥ª¥Ö¥¸¥§¥¯¥È¤Ï¤¿¤À °ì¤Ä¤·¤«Â¸ºß¤·¤Þ¤»¤ó¡£¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ÏÁȤ߹þ¤ß̾ NotImplemented ¤Ç¥¢¥¯¥»¥¹¤µ¤ì¤Þ¤¹¡£¿ôÃͱ黻¤Ë´Ø¤¹¤ë¥á¥½¥Ã¥É¤ä³ÈÄ¥Èæ³Ó (rich comparison) ¥á¥½¥Ã¥É¤Ï¡¢Èï±é»»»Ò¤¬³ºÅö¤¹¤ë±é»»¤ò¹Ô¤¦¤¿¤á¤Î¼ÂÁõ¤ò¤â¤¿¤Ê¤¤¾ì¹ç¡¢ ¤³¤ÎÃͤòÊÖ¤¹¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£(±é»»»Ò¤Ë¤è¤Ã¤Æ¤Ï¡¢¥¤¥ó¥¿¥×¥ê¥¿¤¬ ´ØÏ¢¤Î¤¢¤ë±é»»¤ò»î¤·¤¿¤ê¡¢Â¾¤ÎÂåÂØÁàºî¤ò¹Ô¤¤¤Þ¤¹¡£) ¿¿ÃͤϿ¿ (true) ¤Ç¤¹¡£

Ellipsis
¤³¤Î·¿¤Ë¤Ïñ°ì¤ÎÃͤ·¤«¤¢¤ê¤Þ¤»¤ó¡£¤³¤ÎÃͤò»ý¤Ä¥ª¥Ö¥¸¥§¥¯¥È¤Ï¤¿¤À °ì¤Ä¤·¤«Â¸ºß¤·¤Þ¤»¤ó¡£¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ÏÁȤ߹þ¤ß̾ Ellipsis ¤Ç¥¢¥¯¥»¥¹¤µ¤ì¤Þ¤¹¡£¥¹¥é¥¤¥¹Æâ¤Ë "..." ¹½Ê¸¤¬¤¢¤ë¾ì¹ç¤Ë »È¤ï¤ì¤Þ¤¹¡£¿¿ÃͤϿ¿ (true)¤Ç¤¹¡£

Numbers
¿ôÃÍ¥ê¥Æ¥é¥ë¤Ë¤è¤Ã¤ÆºîÀ®¤µ¤ì¤¿¤ê¡¢»»½Ñ±é»»¤äÁȤ߹þ¤ß¤Î»»½Ñ´Ø¿ô¤Ë ¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡£¿ôÃÍ¥ª¥Ö¥¸¥§¥¯¥È¤ÏÊѹ¹ÉÔǽ¤Ç¤¹; °ìÅÙÃͤ¬À¸À®¤µ¤ì¤ë¤È¡¢ÆóÅÙ¤ÈÊѹ¹¤µ¤ì¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£Python ¤Î¿ôÃÍ¥ª¥Ö¥¸¥§¥¯¥È¤Ï¤¤¤¦¤Þ¤Ç¤â¤Ê¤¯¿ô³Ø¤Ç¸À¤¦¤È¤³¤í¤Î¿ôÃÍ¤È ¶¯¤¯´Ø·¸¤·¤Æ¤¤¤Þ¤¹¤¬¡¢¥³¥ó¥Ô¥å¡¼¥¿Æâ¤Ç¿ôÃͤòɽ¸½¤¹¤ëºÝ¤Ëȼ¤¦ À©¸Â¤ò¼õ¤±¤Æ¤¤¤Þ¤¹¡£

Python ¤ÏÀ°¿ô¡¢ÉâÆ°¾®¿ôÅÀ¿ô¡¢Ê£ÁÇ¿ô¤Î´Ö¤Ç¶èÊ̤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹:

À°¿ô·¿ (integer)

À°¿ô·¿¤Ï¡¢Á´¤Æ¤Î¿ô (whole numbers) ¤òɽ¤¹¿ô³ØÅª½¸¹çÆâ¤Ë¤ª¤±¤ëÍ×ÁǤò ɽ¸½¤¹¤ë·¿¤Ç¤¹¡£

°Ê²¼¤Ë»°¤Ä¤ÎÀ°¿ô·¿¤ò¼¨¤·¤Þ¤¹:

(Ä̾ï¤Î) À°¿ô·¿ (plain integer)
-2147483648 ¤«¤é 2147483647 ¤Þ¤Ç¤ÎÀ°¿ô¤òɽ¸½¤·¤Þ¤¹ (´ðËܥ¥É¥µ¥¤¥º: natural word size ¤¬¤è¤êÂ礭¤Ê¥Þ¥·¥ó¤Ç¤Ï¤è¤êÂ礭¤ÊÄêµÁ°è¤Ë¤Ê¤ë¤³¤È¤â ¤¢¤ê¤Þ¤¹¡£¤è¤ê¾®¤µ¤¯¤Ê¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£) ±é»»¤Î·ë²Ì¤¬ÄêµÁ°è¤òͤ¨¤¿Ãͤˤʤ俾ì¹ç¡¢·ë²Ì¤ÏÄ̾ïĹÀ°¿ô¤Ç ÊÖ¤µ¤ì¤Þ¤¹ (¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¡¢ OverflowError ¤¬Á÷½Ð¤µ¤ì ¤Þ¤¹) ¡£ ¥·¥Õ¥È±é»»¤ä¥Þ¥¹¥¯±é»»¤Î¤¿¤á¤Ë¡¢À°¿ô¤Ï 32 ¥Ó¥Ã¥È°Ê¾å¤Î 2 ¤ÎÊä¿ô¤Ç ɽ¤µ¤ì¤¿¥Ð¥¤¥Ê¥êɽ¸½¤ò»ý¤Ä (¤¹¤Ê¤ï¤Á¡¢4294967296 ¤Î°Û¤Ê¤Ã¤¿¥Ó¥Ã¥È ¥Ñ¥¿¡¼¥óÁ´¤Æ¤¬°Û¤Ê¤ëÃͤò»ý¤Ä) ¤È²¾Äꤵ¤ì¤Æ¤¤¤Þ¤¹¡£

ĹÀ°¿ô·¿ (long integer)
ĹÀ°¿ô¤Ï̵¸Â¤ÎÄêµÁ°è¤ò»ý¤Á¡¢ÍøÍѲÄǽ¤Ê (²¾ÁÛ) ¥á¥â¥ê¥µ¥¤¥º¤ÎÀ©¸Â ¤Î¤ß¤ò¤¦¤±¤Þ¤¹¡£Ä¹À°¿ô¤Ï¥·¥Õ¥È±é»»¤ä¥Þ¥¹¥¯±é»»¤Î¤¿¤á¤Ë¥Ð¥¤¥Ê¥êɽ¸½¤ò ¤â¤Ä¤â¤Î¤È²¾Äꤵ¤ì¤Þ¤¹¡£Éé¤Î¿ô¤ÏÉ乿¥Ó¥Ã¥È¤¬º¸¤Ë̵¸Â¤Ë±ä¤Ó¤Æ¤¤¤ë¤è¤¦¤Ê ºø³Ð¤òÍ¿¤¨¤ë 2 ¤ÎÊä¿ôɽ¸½¤ÎÊÑ·¿¤Çɽ¤µ¤ì¤Þ¤¹¡£

¥Ö¡¼¥ë·¿ (boolean)
¥Ö¡¼¥ë·¿¤Ï¡¢¿¿ÃÍ False ¤Þ¤¿¤Ï True ¤òɽ¸½¤·¤Þ¤¹¡£¥Ö¡¼¥ë·¿¤Î ¥ª¥Ö¥¸¥§¥¯¥È¤Ï False ¤È True ¤òɽ¸½¤¹¤ëÆó¤Ä¤Î¥ª¥Ö¥¸¥§¥¯¥È ¤À¤±¤Ç¤¹¡£¥Ö¡¼¥ë·¿¤ÏÀ°¿ô¤Î¥µ¥Ö¥¿¥¤¥×¤Ç¡¢¤Û¤È¤ó¤É¤Î±é»»¥³¥ó¥Æ¥­¥¹¥È¤Ë ¤ª¤¤¤Æ¥Ö¡¼¥ë·¿ÃͤϤ½¤ì¤¾¤ì 0 ¤Þ¤¿¤Ï 1 ¤Î¤è¤¦¤Ë¿¶Éñ¤¤¤Þ¤¹¡£ ¤¿¤À¤·¡¢Ê¸»úÎó¤ËÊÑ´¹¤µ¤ì¤¿¤È¤­¤Î¤ß¡¢¤½¤ì¤¾¤ìʸ»úÎó "False" ¤ª¤è¤Ó "True" ¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£

À°¿ôɽ¸½¤Ë´Ø¤¹¤ëµ¬Â§¤Ï¡¢¥·¥Õ¥È±é»»¤ä¥Þ¥¹¥¯±é»»¤Ë¤ª¤¤¤Æ¡¢Éé¤ÎÀ°¿ô ¤â´Þ¤á¤ÆºÇ¤âÍ­°ÕµÁ¤Ê²ò¼á¤¬¤Ç¤­¤ë¤è¤¦¤Ë¡¢¤«¤ÄÄ̾ï¤ÎÀ°¿ô¤ÈĹÀ°¿ô ¤È¤Î´Ö¤ÇÄêµÁ°è¤òÀÚ¤êÂØ¤¨¤ëºÝ¤Ë¤Ç¤­¤ë¤À¤±º®Í𤷤ʤ¤¤è¤¦¤Ë·è¤á¤é¤ì¤Æ ¤¤¤Þ¤¹¡£º¸¥·¥Õ¥È°Ê³°¤Î±é»»¤Ç¤Ï¡¢±é»»·ë²Ì¤¬¥ª¡¼¥Ð¥Õ¥í¡¼¤òµ¯¤³¤µ¤º¤Ë À°¿ô¤ÎÄêµÁ°è¤ÎÃͤˤʤë¾ì¹ç¤Ï¡¢Ä¹À°¿ô¤ò»È¤Ã¤¿¾ì¹ç¤Ç¤â¡¢Èï±é»»»Ò¤Ë À°¿ô¤ÈĹÀ°¿ô¤òº®¹ç¤·¤¿¾ì¹ç¤Ç¤âƱ¤¸·ë²Ì¤Ë¤Ê¤ê¤Þ¤¹¡£

ÉâÆ°¾®¿ôÅÀ¿ô·¿ (floating point number)
¤³¤Î·¿¤Ï·×»»µ¡¥ì¥Ù¥ë¤ÇÇÜÀºÅ٤Ȥµ¤ì¤Æ¤¤¤ëÉâÆ°¾®¿ôÅÀ¿ô¤ò ɽ¸½¤·¤Þ¤¹¡£É½¸½²Äǽ¤ÊÃͤÎÈϰϤ䥪¡¼¥Ð¥Õ¥í¡¼¤Î°·¤¤¤Ï¡¢ º¬Äì¤Ë¤¢¤ë·×»»µ¡¥¢¡¼¥­¥Æ¥¯¥Á¥ã (¤È C ¤Þ¤¿¤Ï Java ¼ÂÁõ) ¼¡Âè¤Ç¤¹¡£ Python ¤ÏñÀºÅÙ¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó; ñÀºÅ٤Π¿ô¤ò»È¤¦Íýͳ¤Ï¡¢Ä̾ï¥×¥í¥»¥Ã¥µ¤ä¥á¥â¥ê»ÈÍÑÎ̤ÎÀáÌó¤Ç¤¹¤¬¡¢ ¤³¤¦¤·¤¿ÀáÌó¤Ï Python ¤Ç¥ª¥Ö¥¸¥§¥¯¥È¤ò°·¤¦ºÝ¤Î¥ª¡¼¥Ð¥Ø¥Ã¥É¤ËÈæ¤Ù¤ì¤Ð Èù¡¹¤¿¤ë¤â¤Î¤Ë¤¹¤®¤Þ¤»¤ó¡£½¾¤Ã¤Æ¡¢¤ï¤¶¤ï¤¶ÉâÆ°¾®¿ôÅÀ·¿¤ò 2 ¤Ä¤â ÄêµÁ¤·¤ÆPython ¸À¸ì¤òÆñ²ò¤Ë¤¹¤ëÍýͳ¤Ï¤É¤³¤Ë¤â¤Ê¤¤¤Î¤Ç¤¹¡£

Ê£ÁÇ¿ô·¿ (complex number)
¤³¤Î·¿¤Ï¡¢·×»»µ¡¥ì¥Ù¥ë¤ÇÇÜÀºÅ٤Ȥµ¤ì¤Æ¤¤¤ëÉâÆ°¾®¿ôÅÀ¤ò 2 ¤Ä°ìÁÈ ¤Ë¤·¤ÆÊ£ÁÇ¿ô¤òɽ¸½¤·¤Þ¤¹¡£ÉâÆ°¾®¿ôÅÀ¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤¿¤Î¤ÈƱ¤¸À­¼Á ¤¬Åö¤Æ¤Ï¤Þ¤ê¤Þ¤¹¡£Ê£ÁÇ¿ô z ¤Î¼Â¿ôÉô¤ª¤è¤Óµõ¿ôÉô¤Ï¡¢ ¤½¤ì¤¾¤ìÆÉ¤ß½Ð¤·ÀìÍѰÀ­ z.real ¤ª¤è¤Ó z.imag ¤Ç¼è¤ê½Ð¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

ÇÛÎó·¿ (sequence)
¤³¤Î·¿¤Ï¡¢Í­¸Â¤Î½ç½ø½¸¹ç (ordered set) ¤òɽ¸½¤·¤Þ¤¹¡£Í×ÁǤÏÈóÉé¤Î À°¿ô¤Ç¥¤¥ó¥Ç¥¯¥¹²½¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ÁȤ߹þ¤ß´Ø¿ô len() ¤ò»È¤¦¤È¡¢ÇÛÎó¤ÎÍ×ÁÇ¿ô¤òÊÖ¤·¤Þ¤¹¡£ ÇÛÎó¤ÎŤµ¤¬ n ¤Î¾ì¹ç¡¢¥¤¥ó¥Ç¥¯¥¹¤Ï 0, 1, ..., n-1 ¤«¤é¤Ê¤ë½¸¹ç¤Ç¤¹¡£ÇÛÎó a ¤ÎÍ×ÁÇ i ¤Ï 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 Á´¤Æ¤ÎÍ×ÁǤòÁªÂò¤·¤Þ¤¹¡£

ÇÛÎó¤Ï¡¢Êѹ¹²Äǽ¤Ê¤â¤Î¤«¡¢¤½¤¦¤Ç¤Ê¤¤¤«¤Ç¶èÊ̤µ¤ì¤Æ¤¤¤Þ¤¹:

Êѹ¹ÉÔǽ¤ÊÇÛÎó (immutable sequence)
Êѹ¹ÉÔǽ¤ÊÇÛÎ󷿤Υª¥Ö¥¸¥§¥¯¥È¤Ï¡¢°ìÅÙÀ¸À®¤µ¤ì¤ë¤È¤½¤ÎÃͤò Êѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£ (¥ª¥Ö¥¸¥§¥¯¥È¤Ë¾¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î »²¾È¤¬Æþ¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢»²¾È¤µ¤ì¤Æ¤¤¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ÏÊѹ¹²Äǽ¤Ê ¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤â¤è¤¯¡¢¤½¤ÎÃͤÏÊѹ¹¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹; ¤·¤«¤·¡¢Êѹ¹ÉÔǽ¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤¬Ä¾ÀÜ»²¾È¤·¤Æ¤¤¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Î ½¸¹ç¼«ÂΤϡ¢Êѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£)

°Ê²¼¤Î·¿¤ÏÊѹ¹ÉÔǽ¤ÊÇÛÎ󷿤Ǥ¹:

ʸ»úÎó·¿ (string)
ʸ»úÎó¤Î³ÆÍ×ÁǤÏʸ»ú (character) ¤Ç¤¹¡£Ê¸»ú·¿ (character type) ¤Ï¸ºß¤·¤Þ¤»¤ó; ñ°ì¤Îʸ»ú¤Ï¡¢Í×ÁǤ¬°ì¤Ä¤À¤±¤Îʸ»úÎó¤È¤·¤Æ ɽ¸½¤µ¤ì¤Þ¤¹¡£³ÆÊ¸»ú¤Ï (¾¯¤Ê¤¯¤È¤â) 8-bit ¤Î¥Ð¥¤¥ÈÎó¤òɽ¸½¤·¤Þ¤¹¡£ ÁȤ߹þ¤ß´Ø¿ô chr() ¤ª¤è¤Ó ord() ¤ò»È¤¦¤È¡¢Ê¸»ú¤ÈÈóÉé¤ÎÀ°¿ô¤Çɽ¤µ¤ì¤¿ ¥Ð¥¤¥ÈÃͤδ֤ÇÊÑ´¹¤ò¹Ô¤¨¤Þ¤¹¡£0-127 ¤ÎÃͤò»ý¤Ä¥Ð¥¤¥ÈÃͤϡ¢ÄÌ¾ï Æ±¤¸ ASCII Ãͤò¤â¤Äʸ»ú¤òɽ¸½¤·¤Æ¤¤¤Þ¤¹¤¬¡¢Ãͤò¤É¤¦²ò¼á¤¹¤ë¤«¤Ï ¥×¥í¥°¥é¥à¤Ë¤æ¤À¤Í¤é¤ì¤Æ¤¤¤Þ¤¹¡£Ê¸»úÎó¥Ç¡¼¥¿·¿¤Ï¤Þ¤¿¡¢Î㤨¤Ð ¥Õ¥¡¥¤¥ë¤«¤éÆÉ¤ß½Ð¤µ¤ì¤¿¥Ç¡¼¥¿¤òµ­²±¤¹¤ë¤È¤¤¤Ã¤¿ÍÑÅӤǡ¢¥Ð¥¤¥ÈÃͤΠ¥¢¥ì¥¤¤òɽ¸½¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤Þ¤¹¡£

(¥Í¥¤¥Æ¥£¥Ö¤Îʸ»ú¥»¥Ã¥È¤¬ ASCII¤Ç¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¡¢chr() ¤ä ord() ¤¬ ASCII ¤È EBCDIC ¤È¤Î´Ö¤ÇÂбþÉÕ¤±¤ò¹Ô¤Ã¤Æ¤ª¤ê¡¢ ʸ»úÎó´Ö¤ÎÈæ³Ó¤Ç ASCII ½ç¤¬¼é¤é¤ì¤ë¸Â¤ê¡¢Ê¸»úÎó¤ÎÆâÉôɽ¸½¤È¤·¤Æ EBCDIC ¤ò»È¤Ã¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£Ã¯¤«Â¾¤Ë¤â¤Ã¤È¤Þ¤·¤Ê¥ë¡¼¥ë¤ò¤ª»ý¤Á¤Ç¤¹¤«?)

Unicode ʸ»úÎó·¿
Unicode ¥ª¥Ö¥¸¥§¥¯¥È¤Î³ÆÍ×ÁÇ¤Ï Unicode ¥³¡¼¥Éñ°Ì¤Ç¤¹¡£ Unicode ¥³¡¼¥Éñ°Ì¤È¤Ï¡¢Ã±°ì¤Î Unicode ¥ª¥Ö¥¸¥§¥¯¥È¤Ç¡¢Unicode ½ø¿ô¤ò ɽ¸½¤¹¤ë 16-bit ¤Þ¤¿¤Ï 32-bit ¤ÎÃͤòÊÝ»ý¤Ç¤­¤ë¤â¤Î¤Ç¤¹ (¤³¤Î½ø¿ô¤ÎºÇÂçÃÍ¤Ï sys.maxunicode ¤ÇÍ¿¤¨¤é¤ì¤Æ¤ª¤ê¡¢¥³¥ó¥Ñ¥¤¥ë»þ¤Ë Python ¤¬¤É¤¦ÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¤Ë°Í¸¤·¤Þ¤¹)¡£ Unicode ¥ª¥Ö¥¸¥§¥¯¥ÈÆâ ¤Ë¥µ¥í¥²¡¼¥È¥Ú¥¢ (surrogate pair) ¤¬¤¢¤Ã¤Æ¤â¤è¤¯¡¢Python ¤Ï ¥µ¥í¥²¡¼¥È¥Ú¥¢¤òÆó¤Ä¤ÎÊÌ¡¹¤Î Unicode Í×ÁǤȤ·¤ÆÊó¹ð¤·¤Þ¤¹¡£ ÁȤ߹þ¤ß´Ø¿ô unichr() ¤ª¤è¤Ó ord() ¤Ï¡¢¥³¡¼¥Éñ°Ì¤ÈÈóÉé¤ÎÀ°¿ô¤Çɽ¤µ¤ì¤¿ Unicode ɸ½à 3.0 ¤ÇÄêµÁ¤µ¤ì¤¿ Unicode ½ø¿ô¤È¤Î´Ö¤ÇÊÑ´¹¤ò¹Ô¤¤¤Þ¤¹¡£ ¾¤Îʸ»ú¥¨¥ó¥³¡¼¥É·Á¼°¤È¤ÎÁê¸ßÊÑ´¹¤Ï¡¢ Unicode ¥á¥½¥Ã¥É encode ¤ª¤è¤ÓÁȤ߹þ¤ß´Ø¿ô unicode()¤Ç¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¥¿¥×¥ë·¿ (tuple)
¥¿¥×¥ë¤ÎÍ×ÁǤÏǤ°Õ¤Î Python ¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ç¤­¤Þ¤¹¡£ Æó¤Ä¤Þ¤¿¤Ï¤½¤ì°Ê¾å¤ÎÍ×ÁǤ«¤é¤Ê¤ë¥¿¥×¥ë¤Ï¡¢¸Ä¡¹¤ÎÍ×ÁǤòɽ¸½¤¹¤ë ¼°¤ò¥«¥ó¥Þ¤Ç¶èÀڤäƹ½À®¤·¤Þ¤¹¡£Ã±°ì¤ÎÍ×ÁǤ«¤é¤Ê¤ë¥¿¥×¥ë (ñ½¸¹ç `singleton') ¤òºî¤ë¤Ë¤Ï¡¢Í×ÁǤòɽ¸½¤¹¤ë¼°¤Îľ¸å¤Ë ¥«¥ó¥Þ¤ò¤Ä¤±¤Þ¤¹ (ñ°ì¤Î¼°¤À¤±¤Ç¤Ï¥¿¥×¥ë¤ò·ÁÀ®¤·¤Þ¤»¤ó¡£ ¤³¤ì¤Ï¡¢¼°¤ò¥°¥ë¡¼¥×²½¤¹¤ë¤Î¤Ë´Ý³ç¸Ì¤ò»È¤¨¤ë¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð ¤Ê¤é¤Ê¤¤¤«¤é¤Ç¤¹) ¡£Í×ÁǤÎÁ´¤¯¤Ê¤¤´Ý³ç¸Ì¤ÎÂФòºî¤ë¤È¶õ¤Î¥¿¥×¥ë¤Ë ¤Ê¤ê¤Þ¤¹¡£

Êѹ¹²Äǽ¤ÊÇÛÎó·¿ (mutable sequence)
Êѹ¹²Äǽ¤ÊÇÛÎó¤Ï¡¢ºîÀ®¤·¤¿¸å¤ÇÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ Êѹ¹²Äǽ¤ÊÇÛÎó¤Ç¤Ï¡¢Åº»úɽµ­¤ä¥¹¥é¥¤¥¹É½µ­¤ò»È¤Ã¤Æ»ØÄꤵ¤ì¤¿Í×ÁÇ¤Ë ÂåÆþ¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¡¢del (delete) ʸ¤ò»È¤Ã¤ÆÍ×ÁǤò ºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

Python ¤ËºÇ½é¤«¤éÁȤ߹þ¤Þ¤ì¤Æ¤¤¤ëÊѹ¹²Äǽ¤ÊÇÛÎ󷿤ϡ¢º£¤Î¤È¤³¤í °ì¤Ä¤À¤±¤Ç¤¹:

¥ê¥¹¥È·¿ (list)
¥ê¥¹¥È¤ÎÍ×ÁǤÏǤ°Õ¤Î Python ¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ç¤­¤Þ¤¹¡£¥ê¥¹¥È¤Ï¡¢ ³Ñ³ç¸Ì¤ÎÃæ¤Ë¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿¼°¤òʤ٤ƺî¤ê¤Þ¤¹¡£ (Ťµ¤¬ 0 ¤ä 1 ¤ÎÇÛÎó¤òºî¤ë¤¿¤á¤ËÆÃ¼ì¤Ê¾ì¹çʬ¤±¤ÏɬÍפʤ¤¤³¤È¤Ë Ãí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£)

³ÈÄ¥¥â¥¸¥å¡¼¥ë array¤Ç¤Ï¡¢Ê̤ΠÊѹ¹²Äǽ¤ÊÇÛÎ󷿤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£

¥Þ¥Ã¥×·¿ (mapping)
Ǥ°Õ¤Î¥¤¥ó¥Ç¥¯¥¹½¸¹ç¤Ç¥¤¥ó¥Ç¥¯¥¹²½¤µ¤ì¤¿¡¢Í­¸Â¤Î¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¤Ê¤ë ½¸¹ç¤òɽ¸½¤·¤Þ¤¹¡£Åº»úɽµ­ a[k] ¤Ï¡¢k ¤Ç¥¤¥ó¥Ç¥¯¥¹»ØÄê ¤µ¤ì¤¿Í×ÁǤò a ¤«¤éÁªÂò¤·¤Þ¤¹; ÁªÂò¤µ¤ì¤¿Í×ÁǤϼ°¤ÎÃæ¤Ç »È¤¦¤³¤È¤¬¤Ç¤­¡¢ÂåÆþ¤ä del ʸ¤ÎÂоݤˤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ÁȤ߹þ¤ß´Ø¿ô len() ¤Ï¡¢¥Þ¥Ã¥×Æâ¤ÎÍ×ÁÇ¿ô¤òÊÖ¤·¤Þ¤¹¡£

Python ¤ËºÇ½é¤«¤éÁȤ߹þ¤Þ¤ì¤Æ¤¤¤ë¥Þ¥Ã¥×·¿¤Ï¡¢º£¤Î¤È¤³¤í °ì¤Ä¤À¤±¤Ç¤¹:

¼­½ñ·¿ (dictionary)
¤Û¤È¤ó¤É¤É¤ó¤ÊÃͤǤ⥤¥ó¥Ç¥¯¥¹¤È¤·¤Æ»È¤¨¤ë¤è¤¦¤Ê¡¢ Í­¸Â¸Ä¤Î¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¤Ê¤ë½¸¹ç¤òɽ¤·¤Þ¤¹¡£¥­¡¼ÃÍ (key) ¤È¤·¤Æ»È¤¨¤Ê¤¤ Ãͤϡ¢¥ê¥¹¥È¤ä¼­½ñ¤ò´Þ¤àÃͤ䡢¥¢¥¤¥Ç¥ó¥Æ¥£¥Æ¥£¤Ç¤Ï¤Ê¤¯Ãͤǥª¥Ö¥¸¥§¥¯¥È¤¬ Èæ³Ó¤µ¤ì¤ë¡¢¤½¤Î¾¤ÎÊѹ¹²Äǽ¤Ê·¿¤Ç¤¹¡£¤³¤ì¤Ï¡¢¼­½ñ·¿¤ò¸úΨŪ¤Ë ¼ÂÁõ¤¹¤ë¾å¤Ç¡¢¥­¡¼¤Î¥Ï¥Ã¥·¥åÃͤ¬°ìÄê¤Ç¤¢¤ë¤³¤È¤¬É¬ÍפÀ¤«¤é¤Ç¤¹¡£ ¿ôÃÍ·¿¤ò¥­¡¼¤Ë»È¤¦¾ì¹ç¡¢¥­¡¼ÃͤÏÄ̾ï¤Î¿ôÃÍÈæ³Ó¤Ë¤ª¤±¤ëµ¬Â§¤Ë ½¾¤¤¤Þ¤¹: Æó¤Ä¤ÎÃͤ¬Åù¤·¤¯¤Ê¤ë¾ì¹ç (Î㤨¤Ð 1 ¤È 1.0)¡¢ ¸ß¤¤¤ËƱ¤¸¼­½ñ¤Î¥¨¥ó¥È¥ê¤òɽ¤¹¥¤¥ó¥Ç¥¯¥¹¤È¤·¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¼­½ñ¤ÏÊѹ¹²Äǽ¤Ê·¿¤Ç¤¹; ¼­½ñ¤Ï {...} ɽµ­¤ÇÀ¸À®¤·¤Þ¤¹ ( 5.2.5 Àá, ``¼­½ñɽ¸½'' ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤)¡£

³ÈÄ¥¥â¥¸¥å¡¼¥ë dbm¡¢ gdbm¡¢¤ª¤è¤Ó bsddb¤Ç¤Ï¡¢Ê̤Υޥå׷¿¤òÄó¶¡ ¤·¤Æ¤¤¤Þ¤¹¡£

¸Æ¤Ó½Ð¤·²Äǽ·¿ (callable type)
´Ø¿ô¸Æ¤Ó½Ð¤·Áàºî ( 5.3.4 Àá¡¢``¸Æ¤Ó½Ð¤· (call)'' »²¾È) ¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë·¿¤Ç¤¹:

¥æ¡¼¥¶ÄêµÁ´Ø¿ô (user-defined function)
¥æ¡¼¥¶ÄêµÁ´Ø¿ô¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢´Ø¿ôÄêµÁ¤ò¹Ô¤¦¤³¤È¤ÇÀ¸À®¤µ¤ì¤Þ¤¹ ( 7.5 Àá¡¢``´Ø¿ôÄêµÁ'' »²¾È)¡£´Ø¿ô¤Ï¡¢²¾°ú¿ô (formal parameter) ¥ê¥¹¥È¤ÈƱ¤¸¿ô¤ÎÍ×ÁǤ¬Æþ¤Ã¤¿°ú¿ô¥ê¥¹¥È¤È ¤È¤â¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£

ÆÃ¼ì°À­: 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) ¤Ë´Ø¤¹¤ëÀâÌÀ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

¥æ¡¼¥¶ÄêµÁ¥á¥½¥Ã¥É (user-defined method)
¥æ¡¼¥¶ÄêµÁ¤Î¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢¥¯¥é¥¹¤ä¥¯¥é¥¹¥¤¥ó¥¹¥¿¥ó¥¹ (¤¢¤ë¤¤¤Ï 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) ¤È Åù²Á¤Ë¤Ê¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ç¤¹¡£

´Ø¿ô¥ª¥Ö¥¸¥§¥¯¥È¤«¤é (·ë¹ç¤Þ¤¿¤ÏÈó·ë¹ç¤Î) ¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î ÊÑ´¹¤Ï¡¢¥¯¥é¥¹¤ä¥¤¥ó¥¹¥¿¥ó¥¹¤«¤é°À­¤ò¼è¤ê½Ð¤¹¤¿¤Ó¤Ë¹Ô¤ï¤ì¤ë¤Î¤Ç Ãí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¡¢Â°À­¤ò¥í¡¼¥«¥ë¤ÊÊÑ¿ô¤ËÂåÆþ¤·¤Æ ¤ª¤­¡¢¤½¤ÎÊÑ¿ô¤ò»È¤Ã¤Æ´Ø¿ô¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦¤È¸ú²ÌŪ¤ÊºÇŬ²½¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤Þ¤¿¡¢¾åµ­¤ÎÊÑ´¹¤Ï¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤ËÂФ·¤Æ¤Î¤ßµ¯¤³¤ë¤Î¤ÇÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤; ¤½¤Î¾¤Î¸Æ¤Ó½Ð¤·²Äǽ¥ª¥Ö¥¸¥§¥¯¥È (¤ª¤è¤Ó¸Æ¤Ó½Ð¤·²Äǽ¤Ç¤Ê¤¤Á´¤Æ¤Î ¥ª¥Ö¥¸¥§¥¯¥È) ¤Ï¡¢ÊÑ´¹¤ò¼õ¤±¤º¤Ë¼è¤ê½Ð¤µ¤ì¤Þ¤¹¡£¤½¤ì¤«¤é¡¢ ¥¯¥é¥¹¥¤¥ó¥¹¥¿¥ó¥¹¤Î°À­¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤Ï¡¢·ë¹ç¥á¥½¥Ã¥É¤Ë ÊÑ´¹¤Ç¤­¤Ê¤¤¤ÈÃΤäƤª¤¯¤³¤È¤â½ÅÍפǤ¹; ·ë¹ç¥á¥½¥Ã¥É¤Ø¤ÎÊÑ´¹¤¬ ¹Ô¤ï¤ì¤ë¤Î¤Ï¡¢´Ø¿ô¤¬¥¯¥é¥¹¤Î°ì°À­¤Ç¤¢¤ë¾ì¹ç ¤À¤± ¤Ç¤¹¡£

¥¸¥§¥Í¥ì¡¼¥¿´Ø¿ô (generator function)
yield ʸ ( 6.8 Àá¡¢``yield ʸ'' »²¾È) ¤ò»È¤¦´Ø¿ô¤Þ¤¿¤Ï¥á¥½¥Ã¥É¤Ï¡¢¥¸¥§¥Í¥ì¡¼¥¿´Ø¿ô (generator function) ¤È¸Æ¤Ð¤ì¤Þ¤¹¡£¤³¤Î¤è¤¦¤Ê´Ø¿ô¤Ï¡¢¸Æ¤Ó½Ð¤µ¤ì¤¿ ºÝ¤Ë¡¢¾ï¤Ë¥¤¥Æ¥ì¡¼¥¿¥ª¥Ö¥¸¥§¥¯¥È¤òÊÖ¤·¤Þ¤¹¡£¤³¤Î¥¤¥Æ¥ì¡¼¥¿¥ª¥Ö¥¸¥§¥¯¥È¤Ï ´Ø¿ô¤ÎËÜÂΤò¼Â¹Ô¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤Þ¤¹: ¥¤¥Æ¥ì¡¼¥¿¤Î next() ¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹¤È¡¢yield ʸ¤ÇÃͤò½ÐÎϤ¹¤ë½èÍý¤Þ¤Ç´Ø¿ô¤Î ¼Â¹Ô¤¬¹Ô¤ï¤ì¤Þ¤¹¡£´Ø¿ô¤¬ return ʸ¤ò¼Â¹Ô¤¹¤ë¤«¡¢´Ø¿ô¤òºÇ¸å¤Þ¤Ç ¼Â¹Ô¤·½ª¤¨¤ë¤È¡¢StopIteration Îã³°¤¬Á÷½Ð¤µ¤ì¡¢¥¤¥Æ¥ì¡¼¥¿¤¬ ÊÖ¤¹Ãͤν¸¹ç¤Ï¤½¤³¤Ç½ª¤ï¤ê¤Þ¤¹¡£

ÁȤ߹þ¤ß´Ø¿ô (built-in function)
ÁȤ߹þ¤ß´Ø¿ô¥ª¥Ö¥¸¥§¥¯¥È¤Ï C ´Ø¿ô¤Ø¤Î¥é¥Ã¥Ñ¤Ç¤¹¡£ÁȤ߹þ¤ß´Ø¿ô¤ÎÎã¤Ï len() ¤ä math.sin() (math ¤Ïɸ½à¤ÎÁȤ߹þ¤ß ¥â¥¸¥å¡¼¥ë) ¤Ç¤¹¡£°ú¿ô¤Î¿ô¤ä·¿¤Ï C ´Ø¿ô¤Ç·èÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ ÆÉ¤ß½Ð¤·ÀìÍÑ¤ÎÆÃ¼ì°À­: __doc__ ¤Ï´Ø¿ô¤Î¥É¥­¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó ʸ»úÎó¤Ç¤¹¡£¥É¥­¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó¤¬¤Ê¤¤¾ì¹ç¤Ï None ¤Ë¤Ê¤ê¤Þ¤¹; __name__ ¤Ï´Ø¿ô¤Î̾Á°¤Ç¤¹; __self__ ¤Ï None ¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹ (ÁȤ߹þ¤ß¥á¥½¥Ã¥É¤ÎÀá¤â»²¾È¤·¤Æ¤¯¤À¤µ¤¤); __module__ ¤Ï¡¢´Ø¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥â¥¸¥å¡¼¥ë¤Î̾Á°¤Ç¤¹¡£ ¥â¥¸¥å¡¼¥ë̾¤¬¤Ê¤¤¾ì¹ç¤Ï None ¤Ë¤Ê¤ê¤Þ¤¹¡£

ÁȤ߹þ¤ß¥á¥½¥Ã¥É (built-in method)
¼ÂºÝ¤Ë¤ÏÁȤ߹þ¤ß´Ø¿ô¤òÊ̤ηÁ¤Ç±£Êä·¤¿¤â¤Î¤Ç¡¢¤³¤Á¤é¤Î¾ì¹ç¤Ë¤Ï C ´Ø¿ô¤ËÅϤµ¤ì¤ë²¿¤é¤«¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òÈóÌÀ¼¨Åª¤Ê³°Éô°ú¿ô¤È¤·¤Æ »ý¤Ã¤Æ¤¤¤Þ¤¹¡£ÁȤ߹þ¤ß¥á¥½¥Ã¥É¤ÎÎã¤Ï¡¢alist ¤ò¥ê¥¹¥È¥ª¥Ö¥¸¥§¥¯¥È ¤È¤·¤¿¤È¤­¤Î alist.append() ¤Ç¤¹¡£ ¤³¤Î¾ì¹ç¤Ë¤Ï¡¢ÆÉ¤ß½Ð¤·ÀìÍѤΰÀ­ __self__ ¤Ï alist ¤Çɽ¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ê¤ê¤Þ¤¹¡£

¥¯¥é¥¹·¿ (class type)
¥¯¥é¥¹·¿¡¢¤¢¤ë¤¤¤Ï ``¿·¤·¤¤¥¯¥é¥¹·¿ (new-style class)'' ¤ä¸Æ¤Ó½Ð¤·²Äǽ ¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡£¥¯¥é¥¹·¿¥ª¥Ö¥¸¥§¥¯¥È¤ÏÄ̾¤½¤Î¥¯¥é¥¹¤Î¿·¤¿¤Ê ¥¤¥ó¥¹¥¿¥ó¥¹¤òÀ¸À®¤¹¤ëºÝ¤Î¥Õ¥¡¥¯¥È¥ê¥¯¥é¥¹¤È¤·¤Æ¿¶Éñ¤¤¤Þ¤¹¤¬¡¢ __new__() ¤ò¥ª¡¼¥Ð¥é¥¤¥É¤·¤Æ¡¢¥Ð¥ê¥¨¡¼¥·¥ç¥ó¤ò»ý¤¿¤»¤ë¤³¤È¤â ¤Ç¤­¤Þ¤¹¡£¸Æ¤Ó½Ð¤·¤ÎºÝ¤Ë»È¤ï¤ì¤¿°ú¿ô¤Ï __new__() ¤ËÅϤµ¤ì¡¢ ¤µ¤é¤Ëŵ·¿Åª¤Ê¾ì¹ç¤Ç¤Ï¿·¤¿¤Ê¥¤¥ó¥¹¥¿¥ó¥¹¤ò½é´ü²½¤¹¤ë¤¿¤á¤Ë __init__() ¤ËÅϤµ¤ì¤Þ¤¹¡£

µì¥¯¥é¥¹·¿ (classic class)
(µì) ¥¯¥é¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Ï¸å¤Ç¾Ü¤·¤¯ÀâÌÀ¤·¤Þ¤¹¡£¥¯¥é¥¹¥ª¥Ö¥¸¥§¥¯¥È¤¬ ¸Æ¤Ó½Ð¤µ¤ì¤ë¤È¡¢¿·¤¿¤Ë¥¯¥é¥¹¥¤¥ó¥¹¥¿¥ó¥¹ (¸å½Ò) ¤¬À¸À®¤µ¤ì¡¢ÊÖ¤µ¤ì¤Þ¤¹¡£ ¤³¤ÎÁàºî¤Ë¤Ï¡¢¥¯¥é¥¹¤Î __init__() ¥á¥½¥Ã¥É¤Î¸Æ¤Ó½Ð¤· (ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç) ¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£¸Æ¤Ó½Ð¤·¤ÎºÝ¤Ë»È¤ï¤ì¤¿°ú¿ô¤Ï¡¢ ¤¹¤Ù¤Æ __init__() ¥á¥½¥Ã¥É¤ËÅϤµ¤ì¤Þ¤¹¡£ __init__() ¥á¥½¥Ã¥É¤¬¤Ê¤¤¾ì¹ç¡¢¥¯¥é¥¹¤Ï°ú¿ô¤Ê¤·¤Ç¸Æ¤Ó½Ð¤µ¤Ê¤±¤ì¤Ð ¤Ê¤ê¤Þ¤»¤ó¡£

¥¯¥é¥¹¥¤¥ó¥¹¥¿¥ó¥¹ (class instance)
¥¯¥é¥¹¥¤¥ó¥¹¥¿¥ó¥¹¤Ï¸å¤Ç¾Ü¤·¤¯ÀâÌÀ¤·¤Þ¤¹¡£¥¯¥é¥¹¥¤¥ó¥¹¥¿¥ó¥¹¤Ï ¥¯¥é¥¹¤¬ __call__() ¥á¥½¥Ã¥É¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß¸Æ¤Ó½Ð¤¹ ¤³¤È¤¬¤Ç¤­¤Þ¤¹; x(arguments) ¤È¤¹¤ë¤È¡¢ x.__call__(arguments) ¸Æ¤Ó½Ð¤·¤òû¤¯½ñ¤±¤Þ¤¹¡£

¥â¥¸¥å¡¼¥ë (module)
¥â¥¸¥å¡¼¥ë¤Ï import ʸ¤Ç import ¤·¤Þ¤¹ ( 6.12 Àá¡¢ ``import ʸ'' »²¾È)¡£¥â¥¸¥å¡¼¥ë¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢¼­½ñ¥ª¥Ö¥¸¥§¥¯¥È (¥â¥¸¥å¡¼¥ëÆâ¤ÇÄêµÁ¤µ¤ì¤Æ ¤¤¤ë´Ø¿ô¤¬ func_globals °À­¤Ç»²¾È¤·¤Æ¤¤¤ë¼­½ñ¤Ç¤¹) ¤Ç¼ÂÁõ¤µ¤ì¤¿ ̾Á°¶õ´Ö¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£Â°À­¤Ø¤Î»²¾È¤Ï¡¢¤³¤Î¼­½ñ¤ËÂФ¹¤ë¸¡º÷ (lookup) ¤ËËÝÌõ¤µ¤ì¤Þ¤¹¡£Î㤨¤Ð¡¢m.x ¤Ï m.__dict__["x"] ¤ÈƱ¤¸¤Ç¤¹¡£ ¥â¥¸¥å¡¼¥ë¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ï¡¢¥â¥¸¥å¡¼¥ë¤ò½é´ü²½¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë ¥³¡¼¥É¥ª¥Ö¥¸¥§¥¯¥È¤ÏÆþ¤Ã¤Æ¤¤¤Þ¤»¤ó (°ìÅÙ½é´ü²½¤¬½ª¤ï¤ì¤Ð¤â¤¦É¬Í× ¤Ê¤¤¤«¤é¤Ç¤¹)¡£

°À­¤ÎÂåÆþ¤ò¹Ô¤¦¤È¡¢¥â¥¸¥å¡¼¥ë¤Î̾Á°¶õ´Ö¼­½ñ¤ÎÆâÍÆ¤ò¹¹¿·¤·¤Þ¤¹¡£ Î㤨¤Ð¡¢ "m.x = 1" ¤Ï "m.__dict__["x"] = 1" ¤ÈƱ¤¸¤Ç¤¹¡£

ÆÉ¤ß½Ð¤·ÀìÍÑ¤ÎÆÃ¼ì°À­: __dict__ ¤Ï¥â¥¸¥å¡¼¥ë¤Î̾Á°¶õ´Ö¤Ç¡¢ ¼­½ñ¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡£

ÄêµÁºÑ¤ß¤Î (½ñ¤­¹þ¤ß²Äǽ¤Ê) °À­: __name__ ¤Ï¥â¥¸¥å¡¼¥ë¤Î̾Á°¤Ç¤¹; __doc__ ¤Ï´Ø¿ô¤Î¥É¥­¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó ʸ»úÎó¤Ç¤¹¡£¥É¥­¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó¤¬¤Ê¤¤¾ì¹ç¤Ï None ¤Ë¤Ê¤ê¤Þ¤¹; ¥â¥¸¥å¡¼¥ë¤¬¥Õ¥¡¥¤¥ë¤«¤é¥í¡¼¥É¤µ¤ì¤¿¾ì¹ç¡¢ __file__ ¤Ï¥í¡¼¥É ¤µ¤ì¤¿¥â¥¸¥å¡¼¥ë¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹Ì¾¤Ç¤¹¡£¥¤¥ó¥¿¥×¥ê¥¿¤ËÀÅŪ¤Ë¥ê¥ó¥¯¤µ¤ì¤Æ ¤¤¤ë C ¥â¥¸¥å¡¼¥ë¤Î¾ì¹ç¡¢__file__ °À­¤Ï¤¢¤ê¤Þ¤»¤ó; ¶¦Í­¥é¥¤¥Ö¥é¥ê¤«¤éưŪ¤Ë¥í¡¼¥É¤µ¤ì¤¿³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Î¾ì¹ç¡¢¤³¤Î°À­¤Ï ¶¦Í­¥é¥¤¥Ö¥é¥ê¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹Ì¾¤Ë¤Ê¤ê¤Þ¤¹¡£

¥¯¥é¥¹
¥¯¥é¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Ï¥¯¥é¥¹ÄêµÁ ( 7.6 Àá¡¢ ``¥¯¥é¥¹ÄêµÁ'' »²¾È) ¤ÇÀ¸À®¤µ¤ì¤Þ¤¹¡£¥¯¥é¥¹¤Ï¼­½ñ¤Ç¼ÂÁõ¤µ¤ì¤¿Ì¾Á°¶õ´Ö¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ ¥¯¥é¥¹Â°À­¤Ø¤Î»²¾È¤Ï¡¢¤³¤Î¼­½ñ¤ËÂФ¹¤ë¸¡º÷ (lookup) ¤ËËÝÌõ¤µ¤ì¤Þ¤¹¡£Î㤨¤Ð¡¢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 ¤Ë¤Ê¤ê¤Þ¤¹¡£

¥¯¥é¥¹¥¤¥ó¥¹¥¿¥ó¥¹
¥¯¥é¥¹¥¤¥ó¥¹¥¿¥ó¥¹¤Ï¥¯¥é¥¹¥ª¥Ö¥¸¥§¥¯¥È (¾åµ­»²¾È) ¤ò¸Æ¤Ó½Ð¤·¤Æ À¸À®¤·¤Þ¤¹¡£¥¯¥é¥¹¥¤¥ó¥¹¥¿¥ó¥¹¤Ï¼­½ñ¤Ç¼ÂÁõ¤µ¤ì¤¿Ì¾Á°¶õ´Ö¤ò»ý¤Ã¤Æ ¤ª¤ê¡¢Â°À­»²¾È¤Î»þ¤Ë¤Ï¤³¤Î¼­½ñ¤¬ºÇ½é¤Ë¸¡º÷¤µ¤ì¤Þ¤¹¡£ ¼­½ñÆâ¤Ë°À­¤¬¸«¤Ä¤«¤é¤º¡¢¤«¤Ä¥¤¥ó¥¹¥¿¥ó¥¹¤Î¥¯¥é¥¹¤Ë³ºÅö¤¹¤ë °À­Ì¾¤¬¤¢¤ë¾ì¹ç¡¢¸¡º÷¤Ï¥¯¥é¥¹Â°À­¤Ë¤Þ¤Ç¹­¤²¤é¤ì¤Þ¤¹¡£ ¸«¤Ä¤«¤Ã¤¿¥¯¥é¥¹Â°À­¤¬¥æ¡¼¥¶ÄêµÁ´Ø¿ô¥ª¥Ö¥¸¥§¥¯¥È¤ä¡¢ ¥¤¥ó¥¹¥¿¥ó¥¹¤Î¥¯¥é¥¹ (C ¤È¤·¤Þ¤¹) ¤ä¤½¤Î´ðÄ쥯¥é¥¹¤Ë´ØÏ¢ ÉÕ¤±¤é¤ì¤Æ¤¤¤ëÈó·ë¹ç¤Î¥æ¡¼¥¶ÄêµÁ¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ì¹ç¡¢ im_class °À­¤¬ C ¤Ç im_self °À­¤¬ ¥¤¥ó¥¹¥¿¥ó¥¹¤Ë¤Ê¤Ã¤Æ¤¤¤ë·ë¹ç¥æ¡¼¥¶ÄêµÁ¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤ËÊÑ´¹ ¤µ¤ì¤Þ¤¹¡£ÀÅŪ¥á¥½¥Ã¥É¤ä¥¯¥é¥¹¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤â¤Þ¤¿¡¢ C ¤«¤é¼è¤ê½Ð¤·¤¿¾ì¹ç¤ÈƱÍͤËÊÑ´¹¤µ¤ì¤Þ¤¹; ¾åµ­¤Î ``¥¯¥é¥¹'' ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ ¥¯¥é¥¹¤«¤é¼è¤ê½Ð¤·¤¿Â°À­¤È¼ÂºÝ¤Ë __dict__ ¤ËÆþ¤Ã¤Æ¤¤¤ë ¤â¤Î¤¬°Û¤Ê¤ë¤è¤¦¤Ê¾¤Î¾ì¹ç¤Ë¤Ä¤¤¤Æ¤Ï¡¢ 3.3.2 Àá¤ò »²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ ¥¯¥é¥¹Â°À­¤¬¸«¤Ä¤«¤é¤º¡¢¤«¤Ä¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¯¥é¥¹¤¬ __getattr__() ¥á¥½¥Ã¥É¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢¤³¤Î¥á¥½¥Ã¥É¤ò ¸Æ¤Ó½Ð¤·¤ÆÂ°À­Ì¾¤Î¸¡º÷¤ò½¼Â­¤µ¤»¤Þ¤¹¡£

°À­¤ÎÂåÆþ¤äºï½ü¤ò¹Ô¤¦¤È¡¢¥¤¥ó¥¹¥¿¥ó¥¹¤Î¼­½ñ¤ò¹¹¿·¤·¤Þ¤¹¤¬¡¢¥¯¥é¥¹¤Î ¼­½ñ¤ò¹¹¿·¤¹¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£¥¯¥é¥¹¤Ç __setattr__() ¤ä __delattr__() ¥á¥½¥Ã¥É¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢Ä¾ÀÜ¥¤¥ó¥¹¥¿¥ó¥¹¤Î ¼­½ñ¤ò¹¹¿·¤¹¤ëÂå¤ï¤ê¤Ë¤³¤ì¤é¤Î¥á¥½¥Ã¥É¤¬¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£

¥¯¥é¥¹¥¤¥ó¥¹¥¿¥ó¥¹¤Ï¡¢¤¢¤ëÆÃÄê¤Î̾Á°¤Î¥á¥½¥Ã¥É¤ò»ý¤Ã¤Æ¤¤¤ë ¾ì¹ç¡¢¿ôÃÍ·¿¤äÇÛÎó·¿¡¢¤¢¤ë¤¤¤Ï¥Þ¥Ã¥×·¿¤Î¤è¤¦¤Ë¿¶Éñ¤¦¤³¤È¤¬ ¤Ç¤­¤Þ¤¹¡£ 3.3 Àá¡¢ ``ÆÃ¼ì¥á¥½¥Ã¥É̾'' ¤ò»²¾È ¤·¤Æ¤¯¤À¤µ¤¤¡£

ÆÃ¼ì°À­: __dict__ ¤Ï°À­¤Î¼­½ñ¤Ç¤¹; __class__ ¤Ï¥¤¥ó¥¹¥¿¥ó¥¹¤Î¥¯¥é¥¹¤Ç¤¹¡£

¥Õ¥¡¥¤¥ë (file)
¥Õ¥¡¥¤¥ë ¥ª¥Ö¥¸¥§¥¯¥È¤Ï³«¤«¤ì¤¿¥Õ¥¡¥¤¥ë¤òɽ¤·¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë¥ª¥Ö¥¸¥§¥¯¥È¤ÏÁȤ߹þ¤ß´Ø¿ô open() ¤ä¡¢os.popen(), os.fdopen(), ¤ª¤è¤Ó socke ¥ª¥Ö¥¸¥§¥¯¥È¤Î makefile()¥á¥½¥Ã¥É (¤½¤Î¾¤Î³ÈÄ¥¥â¥¸¥å¡¼¥ë¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤ä¥á¥½¥Ã¥É) ¤ÇÀ¸À® ¤µ¤ì¤Þ¤¹¡£codesys.stdin, sys.stdout ¤ª¤è¤Ó sys.stderr ¤È¤¤¤Ã¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢ ¥¤¥ó¥¿¥×¥ê¥¿¤Îɸ½àÆþÎϢɸ½à½ÐÎÏ¡¢¤ª¤è¤Óɸ½à¥¨¥é¡¼½ÐÎÏ ¥¹¥È¥ê¡¼¥à¤ËÂбþ¤¹¤ë¤è¤¦½é´ü²½¤µ¤ì¤Þ¤¹¡£¥Õ¥¡¥¤¥ë¥ª¥Ö¥¸¥§¥¯¥È¤Ë ´Ø¤¹¤ë´°Á´¤Êµ­½Ò¤Ë¤Ä¤¤¤Æ¤Ï¡¢Python ¥é¥¤¥Ö¥é¥ê ¥ê¥Õ¥¡¥ì¥ó¥¹ ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

ÆâÉô·¿ (internal type)
¥¤¥ó¥¿¥×¥ê¥¿¤¬ÆâÉôŪ¤Ë»È¤Ã¤Æ¤¤¤ë¤¤¤¯¤Ä¤«¤Î·¿¤Ï¡¢¥æ¡¼¥¶¤Ë¸ø³«¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤é¤ÎÄêµÁ¤Ï¾­Íè¤Î¥¤¥ó¥¿¥×¥ê¥¿¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤ÏÊѹ¹¤µ¤ì¤ë²ÄǽÀ­¤¬ ¤¢¤ê¤Þ¤¹¤¬¡¢¤³¤³¤Ç¤Ïµ­½Ò¤Î´°Á´À­¤Î¤¿¤á¤Ë¿¨¤ì¤Æ¤ª¤­¤Þ¤¹¡£

¥³¡¼¥É¥ª¥Ö¥¸¥§¥¯¥È
¥³¡¼¥É¥ª¥Ö¥¸¥§¥¯¥È¤Ï ¥Ð¥¤¥È¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ (byte-compiled) ¼Â¹Ô²Äǽ¤Ê Python ¥³¡¼¥É¡¢ÊÌ̾ ¥Ð¥¤¥È¥³¡¼¥É (bytecode) ¤ò ɽ¸½¤·¤Þ¤¹¡£¥³¡¼¥É¥ª¥Ö¥¸¥§¥¯¥È¤È´Ø¿ô¥ª¥Ö¥¸¥§¥¯¥È¤Î°ã¤¤¤Ï¡¢ ´Ø¿ô¥ª¥Ö¥¸¥§¥¯¥È¤¬´Ø¿ô¤Î¥°¥í¡¼¥Ð¥ëÊÑ¿ô (´Ø¿ô¤òÄêµÁ¤·¤Æ¤¤¤ë¥â¥¸¥å¡¼¥ë¤Î ¥°¥í¡¼¥Ð¥ë) ¤ËÂФ·¤ÆÌÀ¼¨Åª¤Ê»²¾È¤ò»ý¤Ã¤Æ¤¤¤ë¤Î¤ËÂФ·¡¢¥³¡¼¥É¥ª¥Ö¥¸¥§¥¯¥È ¤Ë¤Ï¥³¥ó¥Æ¥­¥¹¥È¤¬¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤¹; ¤Þ¤¿¡¢´Ø¿ô¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ï ¥Ç¥Õ¥©¥ë¥È°ú¿ôÃͤòµ­²±¤Ç¤­¤Þ¤¹¤¬¡¢¥³¡¼¥É¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ï¤Ç¤­¤Þ¤»¤ó (¼Â¹Ô»þ¤Ë·×»»¤µ¤ì¤ëÃͤòɽ¸½¤¹¤ë¤¿¤á)¡£´Ø¿ô¥ª¥Ö¥¸¥§¥¯¥È¤È°ã¤¤¡¢ ¥³¡¼¥É¥ª¥Ö¥¸¥§¥¯¥È¤ÏÊѹ¹ÉÔ²Äǽ¤Ç¡¢Êѹ¹²Äǽ¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î»²¾È¤ò (ľÀÜ¡¢´ÖÀܤ˴ؤï¤é¤º) ´Þ¤ß¤Þ¤»¤ó¡£

ÆÉ¤ß½Ð¤·ÀìÍÑ¤ÎÆÃ¼ì°À­: 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 ¤Ë¤Ê¤ê¤Þ¤¹¡£

¥Õ¥ì¡¼¥à (frame) ¥ª¥Ö¥¸¥§¥¯¥È
¥Õ¥ì¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ï¼Â¹Ô¥Õ¥ì¡¼¥à (execution frame) ¤òɽ¤·¤Þ¤¹¡£ ¼Â¹Ô¥Õ¥ì¡¼¥à¤Ï¥È¥ì¡¼¥¹¥Ð¥Ã¥¯¥ª¥Ö¥¸¥§¥¯¥ÈÆâ¤Ë½Ð¸½¤·¤Þ¤¹ (²¼µ­»²¾È)¡£

ÆÉ¤ß½Ð¤·ÀìÍÑ¤ÎÆÃ¼ì°À­: 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 Ì¿Îá¤È¤â ¸Æ¤Ð¤ì¤Þ¤¹) ¤ò¼ÂÁõ¤Ç¤­¤Þ¤¹¡£

¥È¥ì¡¼¥¹¥Ð¥Ã¥¯ (traceback) ¥ª¥Ö¥¸¥§¥¯¥È
¥È¥ì¡¼¥¹¥Ð¥Ã¥¯¥ª¥Ö¥¸¥§¥¯¥È¤ÏÎã³°¤Î¥¹¥¿¥Ã¥¯¥È¥ì¡¼¥¹¤òɽ¸½¤·¤Þ¤¹¡£ ¥È¥ì¡¼¥¹¥Ð¥Ã¥¯¥ª¥Ö¥¸¥§¥¯¥È¤ÏÎã³°¤¬È¯À¸¤·¤¿ºÝ¤ËÀ¸À®¤µ¤ì¤Þ¤¹¡£ Îã³°¥Ï¥ó¥É¥é¤ò¸¡º÷¤·¤Æ¼Â¹Ô¥¹¥¿¥Ã¥¯¤òÌá¤Ã¤Æ¤¤¤¯ºÝ¡¢Ìá¤Ã¤¿¥ì¥Ù¥ë Ëè¤Ë¡¢¥È¥ì¡¼¥¹¥Ð¥Ã¥¯¥ª¥Ö¥¸¥§¥¯¥È¤¬¸½ºß¤Î¥È¥ì¡¼¥¹¥Ð¥Ã¥¯¤ÎÁ°¤Ë ÁÞÆþ¤µ¤ì¤Þ¤¹¡£Îã³°¥Ï¥ó¥É¥é¤ËÆþ¤ë¤È¡¢¥¹¥¿¥Ã¥¯¥È¥ì¡¼¥¹¤ò ¥×¥í¥°¥é¥à¦¤ÇÍøÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹ ( 7.4 Àá ``try ʸ'' ¤ò»²¾È)¡£ ¥È¥ì¡¼¥¹¥Ð¥Ã¥¯¤Ï sys.exc_traceback ¤È¤·¤ÆÆÀ¤ë¤³¤È¤¬¤Ç¤­¡¢ sys.exc_info() ¤¬ÊÖ¤¹¥¿¥×¥ë¤Î»°ÈÖÌܤÎÍ×ÁǤȤ·¤Æ¤âÆÀ¤é¤ì¤Þ¤¹. ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¤·¤Æ¤Ï¸å¼Ô¤ÎÊý¤¬¿ä¾©¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¤³¤ì¤Ï ¥×¥í¥°¥é¥à¤¬¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤ËÀµ¤·¤¯Æ°ºî¤¹¤ë¤«¤é¤Ç¤¹¡£ ¥×¥í¥°¥é¥à¤ËŬÀڤʥϥó¥É¥é¤¬¤Ê¤¤¾ì¹ç¡¢¥¹¥¿¥Ã¥¯¥È¥ì¡¼¥¹¤Ï (¤¦¤Þ¤¯ ½ñ¼°²½¤µ¤ì¤Æ) ɸ½à¥¨¥é¡¼¥¹¥È¥ê¡¼¥à¤Ë½ñ¤­½Ð¤µ¤ì¤Þ¤¹; ¥¤¥ó¥¿¥×¥ê¥¿¤¬ ÂÐÏÃŪ¤Ë¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢sys.last_traceback ¤È¤·¤Æ ÆÀ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

ÆÉ¤ß½Ð¤·ÀìÍÑ¤ÎÆÃ¼ì°À­: tb_next ¤Ï¥¹¥¿¥Ã¥¯¥È¥ì¡¼¥¹Æâ¤Î (Îã³°¤ÎȯÀ¸¤·¤Æ¤¤¤ë¥Õ¥ì¡¼¥à¤Ë¸þ¤«¤Ã¤Æ) ¼¡¤Î¥ì¥Ù¥ë¤Ç¤¹¡£ ¼¡¤Î¥ì¥Ù¥ë¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï None ¤Ë¤Ê¤ê¤Þ¤¹; tb_frame ¤Ï¸½ºß¤Î¥ì¥Ù¥ë¤Ë¤ª¤±¤ë¼Â¹Ô¥Õ¥ì¡¼¥à¤ò»Ø¤·¤Þ¤¹; tb_lineno ¤ÏÎã³°¤ÎȯÀ¸¤·¤¿¹ÔÈÖ¹æ¤Ç¤¹; tb_lasti ¤Ï¸·Ì©¤ÊÌ¿Îᥳ¡¼¥É¤Ç¤¹¡£¥È¥ì¡¼¥¹¥Ð¥Ã¥¯Æâ¤Î¹ÔÈÖ¹æ¤äºÇ¸å¤Ë¼Â¹Ô¤µ¤ì¤¿ Ì¿Îá¤Ï¡¢try ʸÆâ¤ÇÎã³°¤¬È¯À¸¤·¡¢¤«¤ÄÂбþ¤¹¤ë except Àá¤ä finally À᤬¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ ¥Õ¥ì¡¼¥à¥ª¥Ö¥¸¥§¥¯¥ÈÆâ¤Î¹ÔÈÖ¹æ¤È¤Ï°Û¤Ê¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£

¥¹¥é¥¤¥¹ (slice) ¥ª¥Ö¥¸¥§¥¯¥È
¥¹¥é¥¤¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Ï ³ÈÄ¥¥¹¥é¥¤¥¹¹½Ê¸ (extended slice syntax) ¤¬»È¤ï¤ì¤¿ºÝ¤Ë¥¹¥é¥¤¥¹¤òɽ¸½¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£³ÈÄ¥¥¹¥é¥¤¥¹¹½Ê¸¤È¤Ï¡¢ Æó¤Ä¤Î¥³¥í¥ó¤ä¡¢¥³¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿Ê£¿ô¤Î¥¹¥é¥¤¥¹¤ä¾ÊάÉ乿 (ellipse) ¤ò»È¤Ã¤¿¥¹¥é¥¤¥¹¤Ç¡¢Î㤨¤Ð a[i:j:step] ¡¢ a[i:j, k:l] ¡¢ ¤¢¤ë¤¤¤Ï a[..., i:j] ¤Ç¤¹¡£¥¹¥é¥¤¥¹¥ª¥Ö¥¸¥§¥¯¥È¤ÏÁȤ߹þ¤ß´Ø¿ô slice() ¤ÇÀ¸À®¤µ¤ì¤Þ¤¹¡£

ÆÉ¤ß½Ð¤·ÀìÍÑ¤ÎÆÃ¼ì°À­: start ¤Ï²¼¶­³¦ (lower bound) ¤Ç¤¹; stop ¤Ï¾å¶­³¦ (upper bound) ¤Ç¤¹; step ¤Ï¥¹¥Æ¥Ã¥×ÃÍ (step value) ¤Ç¤¹; ¤½¤ì¤¾¤ì¾Êά¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï None ¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤³¤ì¤é¤Î°À­¤ÏǤ°Õ¤Î·¿¤ÎÃͤò¤È¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¥¹¥é¥¤¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Ï¥á¥½¥Ã¥É¤ò°ì¤Ä¥µ¥Ý¡¼¥È¤·¤Þ¤¹:

indices( self, length)
¤³¤Î¥á¥½¥Ã¥É¤Ïñ°ì¤ÎÀ°¿ô°ú¿ô length ¤ò¼è¤ê¡¢length ¸Ä¤ÎÍ×ÁǤ«¤é¤Ê¤ëÇÛÎó¤ËŬÍѤ·¤¿ºÝ¤Ë¥¹¥é¥¤¥¹¥ª¥Ö¥¸¥§¥¯¥È¤«¤éÄó¶¡ ¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡¢³ÈÄ¥¥¹¥é¥¤¥¹¤Ë´Ø¤¹¤ë¾ðÊó¤ò·×»»¤·¤Þ¤¹¡£ ¤³¤Î¥á¥½¥Ã¥É¤Ï»°¤Ä¤ÎÀ°¿ô¤«¤é¤Ê¤ë¥¿¥×¥ë¤òÊÖ¤·¤Þ¤¹; ¤½¤ì¤¾¤ì start ¤ª¤è¤Ó stop ¤Î¥¤¥ó¥Ç¥¯¥¹¤È¡¢step ¤Þ¤¿¤Ï ¥¹¥é¥¤¥¹´Ö¤ÎÉý¤ËÂбþ¤·¤Þ¤¹¡£¥¤¥ó¥Ç¥¯¥¹Ãͤ¬¤Ê¤¤¤«¡¢Èϰϳ°¤ÎÃÍ ¤Ç¤¢¤ë¾ì¹ç¡¢Ä̾ï¤Î¥¹¥é¥¤¥¹¤ËÂФ·¤Æ°ì´ÓÀ­¤Î¤¢¤ë¤ä¤ê¤«¤¿¤Ç°·¤ï¤ì¤Þ¤¹¡£ ¥Ð¡¼¥¸¥ç¥ó2.3 °Ê¹ß¤Ç¿·µ¬Äɲ䵤줿 »ÅÍͤǤ¹¡£

ÀÅŪ¥á¥½¥Ã¥É (static method) ¥ª¥Ö¥¸¥§¥¯¥È
ÀÅŪ¥á¥½¥Ã¥É¤Ï¡¢¾å¤ÇÀâÌÀ¤·¤¿¤è¤¦¤Ê´Ø¿ô¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¥á¥½¥Ã¥É ¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤ÎÊÑ´¹¤òÁ˻ߤ¹¤ë¤¿¤á¤ÎÊýË¡¤òÄ󶡤·¤Þ¤¹¡£ÀÅŪ¥á¥½¥Ã¥É ¥ª¥Ö¥¸¥§¥¯¥È¤Ï¾¤Î²¿¤é¤«¤Î¥ª¥Ö¥¸¥§¥¯¥È¡¢Ä̾ï¤Ï¥æ¡¼¥¶ÄêµÁ¥á¥½¥Ã¥É ¥ª¥Ö¥¸¥§¥¯¥È¤òÊñ¤à¥é¥Ã¥Ñ¤Ç¤¹¡£ÀÅŪ¥á¥½¥Ã¥É¤ò¥¯¥é¥¹¤ä¥¯¥é¥¹¥¤¥ó¥¹¥¿¥ó¥¹ ¤«¤é¼èÆÀ¤¹¤ë¤È¡¢¼ÂºÝ¤ËÊÖ¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ï¥é¥Ã¥×¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È ¤Ë¤Ê¤ê¡¢¤½¤ì°Ê¾å¤ÏÊÑ´¹¤ÎÂоݤˤϤʤê¤Þ¤»¤ó¡£ÀÅŪ¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È ¤ÏÄÌ¾ï¸Æ¤Ó½Ð¤·²Äǽ¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤ò¥é¥Ã¥×¤·¤Þ¤¹¤¬¡¢ÀÅŪ¥ª¥Ö¥¸¥§¥¯¥È¼«ÂÎ¤Ï ¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£ÀÅŪ¥ª¥Ö¥¸¥§¥¯¥È¤ÏÁȤ߹þ¤ß¥³¥ó¥¹¥È¥é¥¯¥¿ staticmethod() ¤ÇÀ¸À®¤µ¤ì¤Þ¤¹¡£

¥¯¥é¥¹¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È
¥¯¥é¥¹¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢ÀÅŪ¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤Ë»÷¤Æ¡¢ Ê̤Υª¥Ö¥¸¥§¥¯¥È¤òÊñ¤à¥é¥Ã¥Ñ¤Ç¤¢¤ê¡¢¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¯¥é¥¹¤ä ¥¯¥é¥¹¥¤¥ó¥¹¥¿¥ó¥¹¤«¤é¼è¤ê½Ð¤¹ÊýË¡¤òÂåÂØ¤·¤Þ¤¹¡£ ¤³¤Î¤è¤¦¤Ë¤·¤Æ¼èÆÀ¤·¤¿¥¯¥é¥¹¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤Îưºî¤Ë¤Ä¤¤¤Æ¤Ï¡¢ ¾å¤Î ``¥æ¡¼¥¶ÄêµÁ¥á¥½¥Ã¥É (user-defined method)'' ¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¥¯¥é¥¹¥á¥½¥Ã¥É¥ª¥Ö¥¸¥§¥¯¥È¤ÏÁȤ߹þ¤ß¤Î¥³¥ó¥¹¥È¥é¥¯¥¿ classmethod() ¤ÇÀ¸À®¤µ¤ì¤Þ¤¹¡£

¤´°Õ¸«¤ä¤´»ØÅ¦¤ò¤ª´ó¤»¤Ë¤Ê¤ê¤¿¤¤Êý¤Ï¡¢ ¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ë¤Ä¤¤¤Æ... ¤ò¤´Í÷¤¯¤À¤µ¤¤¡£