"__method__"和"方法"之间的区别

Fab*_*bio 38 python methods

有什么区别__method__,method_method__

是否有任何或一些随机的原因人们认为__doc__应该是正确的,而不是doc.是什么让一种方法比另一种更特别?

Aym*_*ieh 75

从风格指南:

  • _single_leading_underscore:弱"内部使用"指标.例如from M import *,不会导入名称以下划线开头的对象.

  • single_trailing_underscore_:用于避免与Python关键字冲突的约定,例如

    Tkinter.Toplevel(master, class_='ClassName')
    
    Run Code Online (Sandbox Code Playgroud)
  • __double_leading_underscore:当命名一个类属性时,调用名称修改(在类内部FooBar,__ boo变为_FooBar__boo;见下文).

  • __double_leading_and_trailing_underscore__:生成在用户控制的命名空间中的"魔术"对象或属性.例如__init__, __import____file__.不要发明这样的名字; 只记录使用它们.

  • __method不是真正的私有,它被类名破坏,但它仍然可以正常访问.虽然+1. (6认同)

Das*_*Ich 22

  • method 这只是一种常规方法
  • _method 除非你知道自己在做什么,否则不应该被调用,这通常意味着你自己编写了这个方法.
  • __method2个下划线用于防止名称管理.可以访问这样的属性或方法instance._ClassName__method.虽然很多人称之为"私人",但事实并非如此.您永远不应该使用它来阻止某人访问此方法,_method而是使用它.
  • __method__用于修改实例行为的特殊方法.不要像这样命名自己的方法.