python使用tips
1、self.variable_name与variable_name使用区别
在编写代码的时候,什么时候用self.variable_name,什么时候用variable_name?
比如已经定义了两个函数:
def a_function():
def b_function():
如果使用了self.variable_name,那么在两个函数中都可以用self.variable_name;但是如果只在函数a中定义了variable_name,那么在函数b中不能使用variable_name。可以认为一个是函数中的全局变量,一个是局部变量。
2、from…import * 语句与 import 区别
import 模块:导入一个模块;注:相当于导入的是一个文件夹,是个相对路径。
from…import *:是把一个模块中所有函数都导入进来; 注:相当于导入的是一个文件夹中所有文件,所有函数都是绝对路径.
3、shutil.rmtree( )
递归删除一个目录以及目录内的所有内容
4、lambda()
lambda函数可以接收任意数量的参数,但是只能有一个表达式:
x = lambda a, b, c : a + b + c
print(x(5, 6, 2))
5、ImportError: No module named ‘_tkinter’, please install the python3-tk package
提示没有安装tkinter。
解决步骤:
(1)sudo apt install tk-dev
(2)sudo apt-get install python3-tk
6、此处是使用TensorFlow时会出现一大堆错误
如:
I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcudart.so.10.0'; dlerror: libcudart.so.10.0: cannot open shared object file: No such file or directory
解决步骤:
打开终端,输入:Python
,
然后输入:import tensorflow as tf
输入:tf.test.is_gpu_available()
出现True,就可以了,如果不是,重新打开终端,尝试上面的步骤。
然后在代码前面加上下面这两句话:
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
再次重新运行代码,上面那些就会消失,只剩下四五个警告了,这样看起来舒服多了。
7、axis
axis=0表示跨行,axis=1表示跨列,举个例子:
a = np.array([[1, 2, 3],
[4, 5, 6]])
print(a.sum(axis=0)) 输出:[5,7,9]
print(a.sum(axis=1)) 输出:[6,15]