1. python my.py v1 v2 命令运行脚本,通过 from sys import argv如何获得v2的参数值?
sys.argv是传递给python脚本的命令行参数【字符串】列表 argv[0]为该脚本自身路径,其余为命令行参数
2. 以”\0”结尾是C/C++中存在,在python中不存在
3.
python中主要存在四种命名方式:
1、object #公用方法
2、_object #半保护
#被看作是“protect”,意思是只有类对象和子类对象自己能访问到这些变量,
在模块或类外不可以使用,不能用’from module import *’导入。
#__object 是为了避免与子类的方法名称冲突, 对于该标识符描述的方法,父
类的方法不能轻易地被子类的方法覆盖,他们的名字实际上是
_classname__methodname。
3、_ _ object #全私有,全保护
#私有成员“private”,意思是只有类对象自己能访问,连子类对象也不能访
问到这个数据,不能用’from module import *’导入。
4、_ _ object_ _ #内建方法,用户不要这样定义
4. Python3参数顺序:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
Python参数顺序:必选参数、默认参数、可变参数和关键字参数。
5.
6.
7.
__new__和__init__的区别,说法正确的是?
正确答案: A B C D
__new__是一个静态方法,而__init__是一个实例方法
__new__方法会返回一个创建的实例,而__init__什么都不返回
只有在__new__返回一个cls的实例时,后面的__init__才能被调用
当创建一个新实例时调用__new__,初始化一个实例时用__init__
根据官方文档:
- __init__是当实例对象创建完成后被调用的,然后设置对象属性的一些初始值。
- __new__是在实例创建之前被调用的,因为它的任务就是创建实例然后返回该实例,是个静态方法。
即,__new__在__init__之前被调用,__new__的返回值(实例)将传递给__init__方法的第一个参数,然后__init__给这个实例设置一些参数。
8. 协程是一种用户态的轻量级线程,协程的调度完全由用户控制。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈,直接操作栈则基本没有内核切换的开销,可以不加锁的访问全局变量,所以上下文的切换非常快。
9.
Python 中的 tuple 结构为 “不可变序列”,用小括号表示。为了区别数学中表示优先级的小括号,当 tuple 中只含一个元素时,需要在元素后加上逗号。
详情可参考文档中的解释:
- Using a trailing comma for a singleton tuple:a,or(a,)
10.
Python 中字符串的前导 r
代表原始字符串标识符,该字符串中的特殊符号不会被转义,适用于正则表达式中繁杂的特殊符号表示。
最典型的例子,如要输出字符串 \n
,由于反斜杠的转义,因此一般的输出语句为:
1 |
|
这里的 \\
将被转义为 \
。而采用原始字符串输出时,则不会对字符串进行转义:
1 |
|