面试宝典三:python基础知识
发布时间
阅读量:
阅读量
目录
1 深copy 浅 copy
2 线程 进程
3 python def(*args,**kwargs)传参数:
4 python 类的定义和继承
5 匿名函数 :a= lambda x,y: (x*y+1,y**2)
6 global 全局局部变量定义使用
7 生成迭代器的iter() 和 next() 返回迭代器的下一个项目
8 yield(生成器是通过一个或多个yield表达式构成的函数)
1 深copy 浅 copy
2 线程 进程
如何快速掌握Python的线程与进程的编程代码_nlp_qidian的博客-博客
3 python def(*args,**kwargs)传参数:
传入元组,传入字典
def function(arg,*args,**kwargs):
print(arg,args,kwargs)
print(arg,[args],kwargs)
function(6,7,8,9,a=1, b=2, c=3)
代码解读

4 python 类的定义和继承
创建一个Animal类,该类的构造函数接收名称、分类和类型参数,均为字符串类型。接着创建一个Dog类,使其继承自Animal类,该类的构造函数接收名称、分类和颜色参数。
class Animal():# 定义类
def __init__(self,name,category):
self.name=name
self.category=category
class Dog(Animal): # 继承类
def __init__(self,name,category,color) # 定义子类和父类继承的所有的参数
super().__init__(name,category) # 初始化父类的参数 要跟父类参数一一对应
self.color=color
def print_color(self):# 定义一个函数 这个可以随便定义
print('Dog color:',self.color)
dog=Dog("狗","动物","黑色")
dog.print_color()
代码解读
2 树的定义:
class Node():
def __init__(self, data,left= None , right= None ): # 每次调用不用必须是三个值 可传可不传
self._data = data
self._left = left
self._right = right
tree =Node(1,Node(2,Node(3),Node(4)),Node(5,Node(6),Node(7)))# 实例化 树结构
print(tree._left._data)
print(tree._left)
tree._left = Node(100)
print(tree._data)
print(tree._left)
print(tree._right._data)
print(tree._right._left)
代码解读
3 定义单链表结构:
class Node():
'''定义单链表节点类'''
def __init__(self,data,next = None):
'''data为数据项,next为下一节点的链接,初始化节点默认链接为None'''
self.data = data
self.next = next
node1 = Node(3,Node(2,Node(1,None)))
print(node1.data,node1.next.data ,node3.next.next.data)
代码解读

4 定义类 实例化类所需要的参数和外部传参数
class aceshi():
def __init__(self,sum):
self.sum=sum
def call(self,d):
return self.sum*d
a=aceshi(4).call(2) # 实例化对象
print(a)
代码解读
这里与在torch框架中构建模型不同,其中,forward函数是构建模型的一个固定方式,与通过普通类的实例化并传递参数的方式来构建模型不同。
5 匿名函数 :a= lambda x,y: (x*y+1,y**2)
a= lambda x,y: (x*y+1,y**2)
# 输入变量: 输入的变量进行什么操作
print(a(3,2))
# 结果:
(7, 4)
代码解读
6 global 全局局部变量定义使用
import threading
def fun():
a.append(1)
a.append(1)
def action():
global a
a = []
fun()
print(a)
a=0
return a
try:
print("a",a)
# 这个a是函数 action中定义的函数内部的全局变量 所以在这里打印的时候 会报错。
except:
print(0)
a=action()
print(a)
代码解读
7 生成迭代器的iter() 和 next() 返回迭代器的下一个项目
通过iter()函数,可以将某个列表等转换为一个可迭代的对象:
通过next()函数,可以依次输出可迭代对象的每一个值:
迭代机制是Python最为强大的功能之一,是实现集合元素遍历的一种方式。迭代器是一个能够记住位置信息的对象。迭代器对象从集合的起始位置开始遍历,直到所有元素都被完整遍历完毕。迭代器的遍历方向是单向的,不会倒退。迭代器两大核心功能是iter()和next()方法。字符串、列表或元组均可作为生成迭代器对象的基础。
# 列表生成式
# next() 返回迭代器的下一个项目。
# next() 函数要和生成迭代器的 iter() 函数一起使用。
L = [x for x in range(5)]
G = iter(L)# G就是一个生成器,也是一个迭代器,迭代器也是可迭代对象,所以这个G也可以说是可迭代对象
print(next(G))
print(next(G))
print(next(G))
print(next(G))
print(next(G))
代码解读

8 yield(生成器是通过一个或多个yield表达式构成的函数)
生成器函数通过一个或多个yield表达式来实现,每一个生成器函数都是一个迭代器(但迭代器不一定是生成器函数)。

def count1(n):
while n > 0:
print('before yield')
yield n
n -= 1
print('after yield')
g = count1(5)
print(next(g))
print("*"*20)
print(next(g))
print("*"*20)
print(g.send(None))
print("*"*20)
print(next(g))
代码解读

全部评论 (0)
还没有任何评论哟~
