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()函数来调用父类的同名方法。



还没有评论,来说两句吧...