3-1 Python语言基础常考题

2022-09-20 12:06:35
一、Python语言特性

Python是静态还是动态类型?是强类型还是弱类型?

1.动态强类型语言(不少人误以为是弱类型)
2.动态还是静态指的是编译期还是运行期确定类型
3.强类型指的是不会发生隐式类型转换

二、Python作为后端语言优缺点

为会么要仍Python
1.胶水语言,轮子多,应用广泛
2.语言灵活,生产力高
3.性能问题、代码维护问题、python2/3兼容问题

三、什么是鸭子类型

”当你看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。"

1.关注点在对象的行为,而不是类型(duck typing)
2.比如fileStringIOsocket对象都支持read/write方法(file like object
3.再比如定义了__iter__魔术方法的对象可以用for迭代

代码示例:

classDuck:defquack(self):print("gua gua")classPerson:defquack(self):print("我是人类,但我也会 gua gua gua")defin_the_forest(duck):
	duck.quack()defgame():
	donald= Duck()
	john= Person()
	in_the_forest(donald)
	in_the_forest(john)

game()

运行结果:
在这里插入图片描述

四、什么是monkey patch

什么是monkey patch?哪些地方用到了?自己如何实现?

1.所谓的monkey patch就是运行时替换
2.比如gevent 库需要修改内置的socket
3.from gevent import monkey; monkey.patch_socket()

代码示例:

import socketprint(socket.socket)print("After monkey patch")from geventimport monkey
monkey.patch_socket()print(socket.socket)import selectprint(select.select)
monkey.patch_select()print("After monkey patch")print(select.select

运行结果:
在这里插入图片描述
自己如何实现呢

import timeprint(time.time())def_time():return1234

time.time= _timeprint(time.time())
五、什么是自省

Introspection
1.运行时判断一个对象的类型的能力
2.Python一切皆对象,用typeidisinstance 获取对象类型信息
3.Inspect模块提供了更多获取对象信息的函数

代码示例:

ll=[1,2,3]
d=dict(a=1)# {a:1}print(type(ll))# <class 'list'>
printL(type(d))# <class 'dict'>print(isinstance(ll,list))# Trueprint(isinstance(d,dict))# Truedefadd(a, b):isinstance(a,int):return a+ belifisinstance(a,str):return a.upper()+ bprint(add(1,2))# 3print(add('head','tail'))# HEADtailprint(id(ll))# ll在内存中的地址 4308266248,每次都是不一样的print(id(d))# 同理,4308272832print(llis d)# Falseprint(llis ll)# True
六、什么是列表和字典推导

List Comprehension

1.比如[i for i in range(10) if i % 2 == 0]
2.一种快速生成list/dict/set的方式。用来替代map/filter
3.(i for i in range(10) if i % 2 == 0) 返回生成器

代码示例:

# 将两个列表组件成字典 d = {'a': 1, 'b': 2, 'c': 3}
a=['a','b','c']
b=[1,2,3]# 方法一:
d={}for iinrange(len(a)):
	d[a[i]]= b[i]print(d)# 方法二:使用推导式
d={k: vfor k, vinzip(a, b)}print(d)

运行结果:
在这里插入图片描述

七、知道Python之禅吗

The Zen of Python
1.Tim Peters 编写的关于Python编程的准则
2.import this
3.编程拿不准的时候可以参考

  • 作者:WinvenChang
  • 原文链接:https://blog.csdn.net/u014257214/article/details/117407882
    更新时间:2022-09-20 12:06:35