• Python 进阶学习笔记


    把函数作为参数

    import math
    def add(x, y, f):
      return f(x) + f(y)
    
    print add(9, 16, math.sqrt)

    map(f, list) 函数

    接收一个 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。

    def f(x):
      return x * x
    list = [1, 2, 3, 4]
    print map(f, list)  # [1, 4, 9, 16]

    reduce(f, list) 函数

    def f(x, y):
      return x * y
    reduce(f, [1, 2, 3, 4])
    # 1*2*3*4

    filter(f, list) 函数

    过滤不符合条件的元素,返回符合条件元素组成的新的 list

    sorted(list) 排序函数
    sorted(list, f) 自定义排序

    导入模块

    import math
    from math import pow, sin, log

    动态导入模块

    try:
        import json
    except ImportError:
        import simplejson as json

    使用 __future__

    Python的新版本会引入新的功能,但是,实际上这些功能在上一个老版本中就已经存在了。要“试用”某一新的特性,就可以通过导入__future__模块的某些功能来实现。

    from __future__ import unicode_literals

    python 模块管理工具
    easy_install
    pip

    创建类

    class Person(object):
        pass
    user = Person()

    给类的实例添加属性

    user.name = 'wangxi'
    user.age = 25

    初始化实例属性

    class Person(object):
        def __init__(self, name, age, gender):
            self.name = name
            self.age = age
            self.gender = gender
    user = Person('wangxi', 25, 'male')
    # user.name 'wangxi'
    # user.age 25
    # user.gender 'male'

    对象属性的访问限制(私有属性)

    class Car(object):
      def __init__(self, name, color, price):
        self.name = name
        self.color = color
        self.__price = price
    
    Tesla = Car('Tesla', 'white', '$23000')
    Tesla.name # 'Tesla'
    Tesla.color # 'white'
    Tesla.price
    # Traceback (most recent call last):
    #   File "<stdin>", line 1, in <module>
    # AttributeError: 'Car' object has no attribute 'price'

    创建类属性和方法
    绑定在类上,每个实例各自拥有,互相独立

    class Human(object):
      address = 'Earth'
      __name = 'man' # 私有属性,在类的实例中无法访问到
      def __init__(self, name):
        self.name = name
      def getName (self): # 类的方法第一个参数一定是 self
        return self.__name # 类的方法中可以访问私有属性
    me = Human('wangxi')
    me.address # 'Earth'
    me.getName() # self 不需要显式的传入

    类属性可以动态添加和修改 (所有的实例访问类属性都会改变)

    Human.address = 'China'
    me.address # 'China'

    如果实例属性和类属性冲突,则优先查找实例属性

    me.address = 'Hangzhou'
    me.address # Hangzhou
    Human.address # 'Earth'

    继承

    class Person(object):
      def __init__(self, name, gender):
        self.name = name
        self.gender = gender
    
    class Student(Person):
      def __init__(self, name, gender, score):
        super(Student, self).__init__(name, gender):
        self.score = score


    多态

    特殊方法
    __str__
    将类的实例转变成 str

    后面的感觉对于我有点超纲了,暂时就不写下去了。。有空再回来继续学

  • 相关阅读:
    小程序组件化、自定义组件 、自定义组件练习,组件与页面互相传值,插槽(slot)、 component构造器
    小程序事件的介绍、事件对象、事件传值、事件冒泡和捕获,bind和catch的区别
    小程序列表渲染、模板语法、wxml的引入、wxs
    小程序中的常用组件,及组件的共同属性、wxcss、weui-wxss、Mustache语法、逻辑判断wx:if、wx:elif、wx:else
    小程序启动时加载顺序,小程序初始化,页面初始化
    label和input标签在兼容模式下 不能关联?解决方案
    当一个cdn挂掉之后,让加载另一个cdn
    将summernote在vue项目中封装成组件
    wangEditor3富文本编辑器的使用
    git中 连接远程仓库及tag切换的使用
  • 原文地址:https://www.cnblogs.com/wx1993/p/7562883.html
Copyright © 2020-2023  润新知