ÀÖÓãµç¾º

½ÌÓýÐÐÒµA¹ÉIPOµÚÒ»¹É£¨¹ÉƱ´úÂë 003032£©

È«¹ú×Éѯ/ͶËßÈÈÏߣº400-618-4000

python ħ·¨·½·¨£º__str__ ºÍ__repr__Ïêϸ½éÉÜ

¸üÐÂʱ¼ä:2019Äê09ÔÂ12ÈÕ16ʱ17·Ö À´Ô´:ÀÖÓã²¥¿Í ä¯ÀÀ´ÎÊý:

ÏÂÃæÎÒÃǽéÉÜpython ÖеÄħ·¨·½·¨__str__ ºÍ__repr__

1. ÒýÑÔ

ÔÚÑ§Ï°ÃæÏò¶ÔÏóµÄʱºò£¬ÎÒÃÇÖªµÀÔÚ python ÖÐÓÐÒ»ÀàÌØÊâµÄ·½·¨£¬½Ð×öħ·¨·½·¨£¬ÕâÖÖ·½·¨µÄÌØµãÈçÏ£º

(1)·½·¨¶¨ÒåµÄʱºòÒÔÁ½¸öÏ»®Ïß¿ªÍ·ºÍÁ½¸öÏ»®Ïß½áβ£ºÈç__init__¡¢__str__ºÍ__repr__

(2)ÕâÀà·½·¨Ò»°ã²»ÐèÒªÎÒÃÇÊÖ¶¯µ÷Óã¬ÔÚÂú×ãij¸öÌõ¼þµÄʱºò»á×Ô¶¯µ÷Óã¬Õâ¸öÂú×ãµÄÌõ¼þÎÒÃÇ¿ÉÒÔ³ÉΪµ÷ÓÃʱ»ú¡£

ÔÚPython ÖÐÓÐÁ½¸öħ·¨·½·¨¶¼ÊÇÓÃÀ´ÃèÊö¶ÔÏóÐÅÏ¢µÄ£¬__str__ºÍ__repr__£¬ÄÇΪʲôҪ¶¨ÒåÁ½¸öÕâÑùµÄ·½·¨ÄØ£¬ÆäʵÊÇËûÃÇÉè¼ÆµÄÄ¿µÄÊDz»Ò»ÑùµÄ£º

(1) __repr__µÄÄ¿±êÊÇ׼ȷÐÔ£¬»òÕß˵£¬__repr__µÄ½á¹ûÊÇÈýâÊÍÆ÷ÓõÄ¡£

(2)__str__µÄÄ¿±êÊǿɶÁÐÔ£¬»òÕß˵£¬__str__µÄ½á¹ûÊÇÈÃÈË¿´µÄ¡£


pythonħ·¨·½·¨

2. ·ÖÎö

ÄÇϱߣ¬ÎÒÃÇÏêϸµÄÀ´¿´Ò»Ï£¬ËûÃǵÄÓ÷¨£º ÔÚ²»ÖØÐ´__str__ ºÍ __repr__µÄÇé¿öÏ£¬´òÓ¡¶ÔÏóµÄÊä³ö½á¹û²»Ì«ÓѺã¬ÊǶÔÏóµÄÄÚ´æµØÖ·£¬¼´ id µÄ½á¹û¡£

# ¶¨Òå Person Àà

class Person(object):

def __init__(self, name):

self.name = name

p = Person("isaac")

ÒÔÏÂΪ²âÊÔÊä³öµÄ½á¹û£º

>>> print(p)

<__main__.Person object at 0x10f29b940>

>>> p

<__main__.Person object at 0x10f29b940>

>>> p.__str__()

'<__main__.Person object at 0x10f29b940>'

>>> p.__repr__()

'<__main__.Person object at 0x10f29b940>'

ÕâÑùµÄÊä³ö½á¹û£¬²¢²»ÊÇÎÒÃÇÏëÒªµÄ½á¹û£¬´ËʱÎÒÃÇÖØÐ´__str__ ºÍ __repr__·½·¨¡£

2.1 ÖØÐ´__str__ ·½·¨

# ¶¨Òå Person Àà

class Person(object):

def __init__(self, name):

self.name = name

def __str__(self):

return "__str__ ·½·¨ " + self.name

p = Person("isaac")

ÒÔÏÂΪ²âÊÔ½á¹û£º

>>> print(p)

__str__ ·½·¨ isaac

>>> str(p)

'__str__ ·½·¨ isaac'

>>> f"{p}"

'__str__ ·½·¨ isaac'

>>> p.__str__()

'__str__ ·½·¨ isaac'

>>> p

´ËʱÎÒÃÇ·¢ÏÖÔÚʹÓà print ´òÓ¡¶ÔÏó¡¢¶ÔÏóµÄ¸ñʽ»¯Êä³öÒÔ¼°µ÷Óà str ·½·¨£¬µ÷ÓõͼÊÇ__str__·½·¨¡£µ«ÔÚ½»»¥»·¾³Ï£¬Ö±½ÓÊä³ö ¶ÔÏóµÄʱºò£¬Ã»Óе÷ÓÃ__str__ ·½·¨£¬Êä³öµÄ½á¹ûÈÔÈ»ÊÇ id µÄ½á¹û¡£

2.2 ÖØÐ´__repr__ ·½·¨

# ¶¨Òå Person Àà

class Person(object):

def __init__(self, name):

self.name = name

def __str__(self):

return "__str__ ·½·¨ " + self.name

def __repr__(self):

return "__repr__ ·½·¨ " + self.name

p = Person("isaac")

´Ëʱ£¬ÎÒÃÇÔÙÀ´¿´Êä³öµÄ½á¹û£¬

>>> p

__repr__ ·½·¨isaac

>>> p.__repr__()

'__repr__ ·½·¨isaac'

>>> print(p)

__str__ ·½·¨ isaac

ͨ¹ý¼òµ¥µÄ¶Ô±È£¬ÎÒÃÇ·¢ÏÖ£¬ÔÚ½»»¥»·¾³Ï£¬Ö±½ÓÊä³ö¶ÔÏ󣬵÷ÓõÄ__repr__ ·½·¨¡£ ÁíÍ⻹ÐèҪעÒâµÄÊÇ£¬Èç¹û½«¶ÔÏó·ÅÔÚÈÝÆ÷ÖнøÐÐÊä³ö£¬µ÷ÓõÄÊÇ__repr__ ·½·¨¡£

>>> [p]

[__repr__ ·½·¨ isaac]

>>> (p)

__repr__ ·½·¨ isaac

>>> {"1":p}

{'1': __repr__ ·½·¨ isaac}

>>> print([p])

[__repr__ ·½·¨ isaac]

3. ×ܽá

Python ÖеÄ__str__ ºÍ __repr__·½·¨¶¼ÊÇÓÃÀ´ÏÔʾµÄ£¬¼´ÃèÊö¶ÔÏóÐÅÏ¢µÄ¡£

 1. __str__µÄÄ¿±êÊǿɶÁÐÔ£¬»òÕß˵£¬__str__µÄ½á¹ûÊÇÈÃÈË¿´µÄ¡£Ö÷ÒªÓÃÀ´´òÓ¡£¬¼´ print ²Ù×÷£¬

 2. __repr__µÄÄ¿±êÊÇ׼ȷÐÔ£¬»òÕß˵£¬__repr__µÄ½á¹ûÊÇÈýâÊÍÆ÷ÓõÄ¡£__repr__ÓÃÓÚ½»»¥Ä£Ê½ÏÂÌáʾ»ØÓ¦£¬

3. Èç¹ûûÓÐÖØÐ´__str__·½·¨£¬µ«ÖØÐ´ÁË__repr__·½·¨Ê±£¬ËùÓе÷ÓÃ__str__µÄʱ»ú¶¼»áµ÷ÓÃ__repr__·½·¨¡£


ÍÆ¼öÁ˽⣺
´óÊý¾ÝÅàѵ¿Î³Ì
python+È˹¤ÖÇÄܿγÌ

0 ·ÖÏíµ½£º
ºÍÎÒÃÇÔÚÏß½»Ì¸£¡
¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿