python语法刷题

hasattr(f, 'close'):  # 用于判断对象是否包含对应的属性
img[np.newaxis] # 插入新维度
f.convert('P') # 图像实例对象的一个方法,接受一个 mode 参数,用以指定一种色彩模式

装饰器

装饰器函数实质:
将函数作为参数传入函数,
@A
def B()
#用A函数装饰B,执行时将B传入A当做参数使用

def dec(f):
    n=3
    def wrapper(*args,**kw):
        return f(*args,**kw)*n
    return wrapper()

@dec
def foo(n):
    return n*2
# 被装饰的是dec,先计算dec,返回f()*n(3)即f()*3
# 将foo(2)代入dec即为foo(2)*3即2*2*3
# 两个函数的n并不相同

字典的键

dic = {}
dic1 = {100:200}
dic2 = {(1,2,3):"test"}
dic3 = {[1,2,3]:"test"}# 不合法。字典的键必须是不可变类型,如数字,字符串,元组,列表不行

深拷贝与浅拷贝

import copy
a=[1,2,3,4,["a","b"]]
b=a  
c=copy.copy(a) # 浅拷贝,两个对象中
# 不可变对象指向不同地址,相互不会改变,但是两个对象中的,即a.append(5)不改变
# 可变元素是指向相同的地址,一个变了,另一个会同时改变,会有影响,即a[4].append("c")改变
d=copy.deepcopy(a) # a.append(5)与a[4].append("c")都不改变
a.append(5)
a[4].append("c")

## 可变对象,不改变地址的情况下可以改变值
## 不可变对象,改变了值地址就变了

ndarray

import numpy as np
a = np.repeat(np.arange(5).reshape([1,-1]),10,axis=0)+10.0
            # np.arange(5)返回一个有终点和起点的固定步长的排列
#             np.repeat(item,num,axis)item重复num次
b = np.random.randint(5,size=a.shape)
c = np.argmin(a*b,axis=1) # a*b对应元素相乘。 np.argmin按照所在的维度取最小的那个维度的索引
b = np.zeros(a.shape)
b[np.arange(b.shape[0]),c] = 1 # one-hot编码,使用[]中的两个值作为索引进行变1操作
print(b)

字符串

str = "he jian xin"
print(str.title())
print(str.upper())
print(str.lower())
# 输出He Jian Xin
# 输出HE JIAN XIN
# 输出he jian xin

super继承

super() 函数是用于调用父类(超类)的一个方法。
super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。
MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值