python变量前后的_和__有什么用
时间: 2023-12-18 19:03:30 浏览: 102
在Python中,单个下划线(_)和双下划线(__)在变量名前后有不同的用途。
单个下划线(_):
1. 作为占位符,表示一个变量的值可以被忽略,不需要使用。
2. 在解释器中,最后一个表达式的值被保存在变量 _ 中。例如,执行 2+2 后,可以直接输入 _ 来获取结果 4。
3. 在导入模块时,用于隐藏不需要被外部访问的变量或函数。例如,from module import * 会将模块中所有公共的变量或函数导入,但是以单下划线开头的变量或函数不会导入。
双下划线(__):
1. 双下划线开头的变量或方法是私有的,不能从外部直接访问。例如,__name 表示一个私有变量。
2. 如果在类中定义了双下划线开头和结尾的方法(如 __init__()),则表示这是一个特殊方法(magic method),用于实现特殊的功能。例如,__init__() 方法用于初始化对象的属性。
相关问题
python的变量前后双下划线作用
在 Python 中,以双下划线开头和结尾的变量有特殊的作用,通常称为魔术方法或魔法变量。下面是两种常见的双下划线用法:
1. `__name__`:表示私有变量。这种变量只能在类的内部访问,在类的外部无法直接访问。
2. `__init__`:表示构造方法。这是一个特殊的方法,当创建对象时自动调用,用于初始化对象的属性。
举个例子,我们可以定义一个类 `Person`,其中包含一个私有变量 `__name` 和一个构造方法 `__init__`:
```
class Person:
def __init__(self, name):
self.__name = name
def get_name(self):
return self.__name
```
在这个例子中,我们使用 `__init__` 方法在创建 `Person` 对象时初始化了私有变量 `__name`。在 `get_name` 方法中,我们返回了私有变量 `__name` 的值,这样外部就可以通过 `get_name` 方法获取 `Person` 对象的名称了。
总之,以双下划线开头和结尾的变量在 Python 中有特殊的作用,可以实现一些高级的功能,如私有变量和构造方法等。如果想要深入了解这些魔法变量的用法,可以查阅 Python 的官方文档。
favourite_language=' python ' favourite_language.strip() print(favourite_language)为什么我的代码输出后没有删除空格
当你使用 `favourite_language.strip()` 时,这个方法会移除字符串两侧的空白字符,包括空格。但是,如果你的变量 `favourite_language` 已经初始化为 `" python "`,它本身就只有一个空格在末尾,并不是一个前后都有空格的情况。所以,调用 `strip()` 后,结果还是 `" python"`,因为它本身并没有多余的空白需要去除。
为了验证这一点,你可以尝试以下代码:
```python
favourite_language = ' python '
print(f"favourite_language before strip: {favourite_language}")
favourite_language = favourite_language.strip()
print(f"favourite_language after strip: {favourite_language}")
```
运行后你会看到:
```
favourite_language before strip: python
favourite_language after strip: python
```
因为原始字符串已经没有多余的空格,所以 `strip()` 操作无明显效果。
阅读全文