Bei der Definition einer Klasse in Python habe ich mich immer gefragt, warum das erste Argument "self" heißt, also werde ich es nachschlagen und aufschreiben.
Aus der Schlussfolgerung ist es nicht gut. Verwenden Sie in PEP8 (1) immer self als Namen des ersten Arguments der `Instanzmethode.
`` `
Ist definiert als. In Bezug auf den Betrieb funktioniert es jedoch auch dann ordnungsgemäß, wenn es nicht "selbst" ist. Ein Beispiel finden Sie unter hier (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
Es funktioniert, aber es ist ein Regelverstoß, also können Sie es nicht tun.
Übrigens, wenn Sie es als die Rolle von "Selbst" betrachten, wird es zurückkehren, wo sich die richtig definierte Klasse im Speicher befindet. Macht es Spaß, sie unerwartet zu betrachten?
self_inplace_hoge: <__main__.Hoge object at 0x00000123D17C1CC8>
self_inplace_fuga: <__main__.Fuga object at 0x00000123D17C12C8>
this
Undself
Ich frage mich, ob jemand eine Regel aufstellen könnte, denn wenn Sie ihm einen Namen geben, den Sie mögen, wird es gefährlich ~
Es ist wie ein Modewort.
(1) pep8-ja (2) self in Python class
Recommended Posts