【python】关于python不得不提的下划线_

一. 下划线在Python的作用与意义

1 单下划线 _

如果会话中上一条语句执行的结果没有通过赋值语句赋值给一个变量,则该值默认赋值给 “_”
和计算器里的ans有点类似(如果没有赋值的话)
在这里插入图片描述

2 作为变量前的单下划线 “_”,如_name

变量所在模块/类以外的地方也能访问该变量,但最好不要(protected)

class Student:
    def __init__(self, name, age):
        self._name = name
        self.age=age
stu = Student('hello',30)
print(stu.age)    #30
print(stu._name)  #hello

值得注意的是
以"_“”__"开头的名称都不会 from<>import∗ 这种形式导入

定义模块test1

'''模块test1.py'''

num = 20
_num = 40
__num = 60
__num__ = 80

from< test1 >import ∗

'''模块test2.py'''
from test1 import *

print(num) #20
print(_num) #报错,name '_num' is not defined
print(__num) #报错,name '__num' is not defined
print(__num__) #报错,name '__num__' is not defined

import test1

'''模块test2.py'''
import test1

print(test1.num) #输出20
print(test1._num) #输出40
print(test1.__num) #输出60
print(test1.__num__) #输出80


3 作为变量前的双下划线 “__”,如__name

变量所在模块/类以外的地方不能访问该变量,这是私有变量(private)
原因:
Python解释器对外把 __xxx变量改成了_classname__xxx
所以,仍然可以通过_classname__xxx来访问__xxx变量

class Student:
    def __init__(self, name, age):
        self.__name = name
        self.age=age

stu = Student('Vicent',30)
print(stu.age) #输出30
print(stu._Student__name) #输出hello
print(stu.__name) #报错:AttributeError: 'Student' object has no attribute '__name'

4 变量前后的双下划线 如__ init __ ,__ name __

Python内置特殊变量,哪儿都可以访问
用户不以这样的命名形式自定义变量和函数时就不会和系统定义的方法冲突
一般是重写这些方法才会用到
例如,当定义一个类时,经常会覆写“init”方法。

class Student:
    def __init__(self, name, age):
        self.__name = name
        self.age=age

除了 __ init __
还有__ del __ 、__ add __ 、__ getitem __ 等
以及全局的 __ file __ 、__ name __ 等。

二. conda的基本指令与操作

以下所有的环境的名称都以newd2l为例 , 读者请根据自己需要将newd2l替换成自己所需的环境名
以下所有的包的名字都以d2l为例 , 读者请根据自己需要将d2l替换成自己所需的包名

创建环境
conda create -n newd2l python=3.7

查看所有的环境 
conda env list

切换环境
activate newd2l

删除环境
conda remove -n newd2l --all

检测包是否正常
pip check d2l

下载某个包
pip install d2l

卸载某个包
pip uninstall d2l
或者
conda remove --name newd2l  d2l

提示 : 最好先uninstall再install实现更新某个包

查看包的版本号
conda list d2l



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值