日常问题总结
1.python cannot import name XXX
python中可能刚开始的童鞋会遇到 cannot import name ‘XXX’, 其实明白了其中的原理就很容易解决了,而且以后遇到此类问题马上就能明白是哪里出问题了。
其实这是出现再模块导入的顺序问题上,
比如: from A import B 这里导入了B后,程序再执行到这句的时候马上就会转到模块B中去,而 from A import B后面的程序就暂停执行,但B中的模块可能也有导入 上一个模块from A import B后面的内容,name就会出现 cannot import name xxx了。
总结: 所以再导入模块时就要保证 目标模块中导入的内容已在执行模块前已定义.
2.函数返回值,不管返回几个参数最终都是返回到一个元组中,想用哪个返回参数就去切哪个返回参数
code:
def num(): a = 1 b = 2 return a, b, print(num()[0]) print(num()[1])
result:
E:\Python\python.exe E:/frame_scripts_file/order_business_automated_scripts/commodity/commodity_manage/All_commodity/business_case.py 1 2 Process finished with exit code 0
3.想要获取变量的名称,用locals()方法。
code:
def get_variable_name(variable): loc = locals() print(loc) for key in loc: if loc[key] == variable: print(key, '变量名称')
4.想要把一个原则拆分成多个元组
注意:注意元祖中的元素的个数必须要与拆分的变量的个数一致
code:
a = (1, 2, 3, 4,) b, c, d, e = a print(b, '前面是b', c, '前面是c', d, e)
result:
E:\Python\python.exe E:/frame_scripts_file/common_config/common_code.py 1 前面是b 2 前面是c 3 4 Process finished with exit code 0
以下code是:获得变量名称并拆分变量把一个拆分的内容赋给原来的变量名,另一个拆分成一个新的。
code:
def get_variable_name(variable): loc = locals() print(loc) for key in loc: if loc[key] == variable: print(key, '变量名称') key, num = variable print(key, '变量') print(num) return key, num
5.PYTHON 取消转义字符作用
Python 使用反斜杠(\)转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串:
>>> print('Ru\noob') Ru oob >>> print(r'Ru\noob') Ru\noob >>>
另外,反斜杠(\)可以作为续行符,表示下一行是上一行的延续。也可以使用 """...""" 或者 '''...''' 跨越多行。
注意,Python 没有单独的字符类型,一个字符就是长度为1的字符串。
>>> word = 'Python' >>> print(word[0], word[5]) P n >>> print(word[-1], word[-6]) n P
与 C 字符串不同的是,Python 字符串不能被改变。向一个索引位置赋值,比如word[0] = 'm'会导致错误。
注意:
- 1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
- 2、字符串可以用+运算符连接在一起,用*运算符重复。
- 3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
- 4、Python中的字符串不能改变。