LOADING . . .

Python杂记

函数多参数

  函数可以设置传入多个参数:

  def function(*args)

  def function(**kwargs) 

  args是函数可以传入无索引参数,kwarg是函数可以传入索引参数,即字典。

  如下:

  多出来的无索引参数会在函数中整合为元组放在args中,有索引的参数整合为字典存在kwargs中。

  有索引和无索引的参数要分别排列,不能穿插在一起,不然出错。

多继承时的对父类的初始化

1 class jc(Car,Lunzi):
2     def __init__(self,paizi,xiaohao,year,lz,x):
3         Car.__init__(self,paizi,xiaohao,year)
4         Lunzi.__init__(self,lz)
5         self.x=x
6 a=jc('111','111',111,111,111)
7 print(a.paizi)

   单继承就直接用super就行了,不过用类名也行。

类中的函数一定要添加self参数

  说是为了显式地传递实例。。即使你这个函数并不用self里面的成员变量,还是要加。

set类

  集合,是一种数据类型。里面的元素不会重复,放入相同的元素还是算一个元素。

array提取一部分行、列

  array[[1,2,3,5]],对于如二维数组提取第1、2、3、5行,即第一维的切片。

  array[:,[1,2,3,5]],是提取第二维的1、2、3、5切片。

  array[:,[1,2,3,5]][[2,4]],是先提取第二维的1、2、3、5切片,然后从切片提取第一维的第2、4切片。

  另外,array[i:j:k],表示从i到j,步长为k提取第一维的切片(包含i,不包含j)。

排序

  a.argsort(),返回数组a排序后的索引,因此可以利用这个索引实现二维矩阵按照某列或某行排序。获取排序序列:

  a[a.argsort()]

获取特定列表

  如[max(seq) for seq in train_data]:获取train_data里面每个元素里面的元素的最大值,然后把这些最大值组合成列表。

装饰器

  在python中一切皆为对象,装饰器实际上就是以另一种简单的写法来给函数外添加一层功能。装饰器使用方式如下:

def wrap(x):
    print('wrap')
    return x
 
@wrap
def function():
    print('function')  

function() # 1

  其中@wrap这个操作表示给 function 这个函数外面包裹一层wrap函数,而 wrap 函数必须且只能有一个参数,用来传入被包裹的函数。实际上,注释1处的结果等价于:

def wrap(x):
    print('wrap')
    return x
  
def function():
    print('function')  

wrap(function)() #1

  看懂这个实际上就懂装饰器了。

 

posted @ 2020-01-10 17:03  颀周  阅读(176)  评论(0编辑  收藏  举报
很高兴能帮到你~
点赞