Python下划线的用法
在Python编程语言中,下划线(_)是一个特殊的字符,它有多种用途,本文将详细介绍Python下划线的用法。
1、单一下划线(_):单一下划线在Python中通常用作占位符,表示我们不关心或者不需要使用这个变量的值。
for _ in range(5): print("Hello, World!")
在这个例子中,我们使用单一下划线作为循环变量,因为我们只关心循环的次数,而不关心每次循环的具体值。
2、双下划线(__):双下划线在Python中有特殊的含义,以双下划线开头和结尾的变量或方法名,被视为“私有”的,即它们只能在类的内部访问。
class MyClass: def __init__(self): self.__private_var = 10 def public_method(self): print("This is a public method.") self.__private_method() def __private_method(self): print("This is a private method.") obj = MyClass() obj.public_method() # 输出 "This is a public method." 和 "This is a private method." obj.__private_var # 报错:AttributeError: 'MyClass' object has no attribute '__private_var' obj.__private_method() # 报错:AttributeError: 'MyClass' object has no attribute '__private_method'
在这个例子中,__private_var
和__private_method
是类的私有成员,只能在类的内部访问,当我们尝试从类的外部访问这些成员时,会抛出AttributeError
异常。
3、单双下划线组合:在某些情况下,我们可以使用单双下划线组合来表示特殊含义,一个类的方法名可能与其父类的方法名相同,为了避免命名冲突,我们可以在子类的方法名前加上一个下划线。
class ParentClass: def my_method(self): pass class ChildClass(ParentClass): def __my_method(self): print("This is a method from ChildClass.") super().my_method() # 调用父类的 my_method 方法
在这个例子中,ChildClass
中的__my_method
方法与ParentClass
中的my_method
方法重名,但我们可以通过在子类的方法名前加上一个下划线来避免命名冲突,我们还可以使用super()
函数来调用父类的同名方法。
还没有评论,来说两句吧...