美文网首页
Python高级----列表推导式、拷贝、装饰器

Python高级----列表推导式、拷贝、装饰器

作者: Alice丨殇 | 来源:发表于2018-08-26 19:05 被阅读0次

列表推导式

所谓的列表推导式,就是指的轻量级循环创建列表

基本方法(一个for循环)


image.png

在循环中加if


image.png
两个for循环
image.png

三个for循环


image.png

深拷贝和浅拷贝

copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。
copy.deepcopy 深拷贝 拷贝对象及其子对象

import copy
>>> a = [1,2,3,4,['a','b']] #定义一个列表a
>>> b = a #赋值
>>> c = copy.copy(a) #浅拷贝
>>> d = copy.deepcopy(a) #深拷贝

>>> a.append(5)
>>> print(a)
[1, 2, 3, 4, ['a', 'b'], 5] #a添加一个元素5
>>> print(b) 
[1, 2, 3, 4, ['a', 'b'], 5] #b跟着添加一个元素5 
>>> print(c)
[1, 2, 3, 4, ['a', 'b']] #c保持不变
>>> print(d)
[1, 2, 3, 4, ['a', 'b']] #d保持不变

>>> a[4].append('c') 
>>> print(a)
[1, 2, 3, 4, ['a', 'b', 'c'], 5] #a中的list(即a[4])添加一个元素c
>>> print(b)
[1, 2, 3, 4, ['a', 'b', 'c'], 5] #b跟着添加一个元素c
>>> print(c)
[1, 2, 3, 4, ['a', 'b', 'c']] #c跟着添加一个元素c
>>> print(d)
[1, 2, 3, 4, ['a', 'b']] #d保持不变

#说明如下:
#1.外层添加元素时, 浅拷贝c不会随原列表a变化而变化;内层list添加元素时,浅拷贝c才会变化。
#2.无论原列表a如何变化,深拷贝d都保持不变。
#3.赋值对象随着原列表一起变化

装饰器

装饰器是程序开发中经常会用到的一个功能,所谓装饰器就是把函数包装一下,为函数添加一些附加功能,装饰器就是一个函数,参数为被包装的函数。

pyrhon3写代码要遵循开放封闭原则,虽然在这个原则是用的面向对象开发,但是也适用于函数式编程,简单来说,它规定已经实现的功能代码不允许被修改,但可以被扩展,即:

  • 封闭:已实现的功能代码块
  • 开放:对扩展开发
def w1(fun):#通用装饰器
    def inner(*args,**kwargs):
        print("装饰中")
        return fun(*args,**kwargs)
    return inner

@w1 #相当于show1 = w1(show1)
def show1():
    print("哈哈")

@w1
def show2(arg):
    print("哈哈哈")
    print(arg)

@w1
def show3():
    print("哈哈哈哈哈")
    return "呵呵呵"

@w1
def show4(arg):
    print("哈哈哈哈哈哈哈哈哈")
    return arg

ret = show4("老王")
print(ret)

相关文章

  • python高级用法

    本文主要介绍三种python的高级用法:列表推导式、迭代器和生成器、装饰器 一、列表推导(list compre...

  • Python高级----列表推导式、拷贝、装饰器

    列表推导式 所谓的列表推导式,就是指的轻量级循环创建列表 基本方法(一个for循环) 在循环中加if 三个for循...

  • 列表推导式

    列表推导式 推导式 推导式(又称解析器),是 Python 独有的一种特性。使用推导式可以快速生成列表、元组、字典...

  • python高级

    python高级:1、模块和包2、深浅拷贝3、回顾面向对象4、列表生成器5、迭代器6、装饰器7、函数高级8、正则表...

  • Python中各种推导式

    Python的各种推导式(列表推导式,字典推导式,集合推导式) 列表(list)推导式 字典(dict)推导式 集...

  • python推导式

    python的各种推导式(列表推导式、字典推导式、集合推导式) 推导式comprehensions(又称解析式),...

  • 024python的各种推导式

    python的各种推导式(列表推导式、字典推导式、集合推导式) 推导式comprehensions(又称解析式),...

  • 列表推导式、深浅拷贝

    本文将会总结以下几个知识点: 列表推导式 == 和 is 深拷贝和浅拷贝 列表推导式 需求:如果我们想生成一个连续...

  • Python——生成器、列表生成式、迭代器

    Python列表生成式 列表推导式的一般语法 这种语法等价于以下代码 下面举一些列表推导式的栗子: Python中...

  • 推导式 生成器 迭代器

    推导式 生成器 迭代器 1.推导式 推导式:列表推导式、字典推导式、集合推导式语法 [变量 for 变量 in 旧...

网友评论

      本文标题:Python高级----列表推导式、拷贝、装饰器

      本文链接:https://www.haomeiwen.com/subject/pmgoiftx.html