牛客网 python (1)

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

print "\\n"

这里的 \\ 将被转义为 \ 。而采用原始字符串输出时,则不会对字符串进行转义:

1

print r"\n"


猜你喜欢

转载自blog.csdn.net/sxllllwd/article/details/81901372