Lors de la définition d'une classe en Python, je me suis toujours demandé pourquoi le nom du premier argument était `` self '', alors je vais le chercher et l'écrire.
De la conclusion, ce n'est pas bon. Dans PEP8 (1), utilisez toujours self comme nom du premier argument de la méthode ```instance.
`
Est défini comme. Cependant, en termes de fonctionnement, il fonctionne correctement même s'il n'est pas `` self ''. Pour un exemple, reportez-vous à ici (2).
class Hoge():
def __init__(self_inplace_hoge, string):
self_inplace_hoge.string = string
print('self_inplace_hoge: ', self_inplace_hoge.string)
class Fuga(Hoge):
def __init__(self_inplace_fuga, string):
self_inplace_fuga.string = string
print('self_inplace_fuga: ', self_inplace_fuga.string)
hoge = Hoge('aaaa')
fuga = Fuga('bbbb')
print(hoge.string)
print(fuga.string)
self_inplace_hoge: aaaa
self_inplace_fuga: bbbb
aaaa
bbbb
Cela fonctionne, mais c'est une violation des règles, vous ne pouvez donc pas le faire.
Au fait, si vous le considérez comme le rôle de `` soi '', il retournera là où se trouve la classe correctement définie dans la mémoire. Est-ce amusant de la regarder de manière inattendue?
self_inplace_hoge: <__main__.Hoge object at 0x00000123D17C1CC8>
self_inplace_fuga: <__main__.Fuga object at 0x00000123D17C12C8>
this
Etself
Je me demande si quelqu'un pourrait faire une règle parce que si vous lui donnez un nom que vous aimez, ce sera dangereux ~
C'est un peu comme un mot à la mode.
(1) pep8-ja (2) self in Python class
Recommended Posts