广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python之类方法,lambda,闭包
  • 664
分享到

Python之类方法,lambda,闭包

方法Pythonlambda 2023-01-30 23:01:07 664人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

类方法 lambda 闭包 claSSMethod staticmethod instancemethod 类方法 类方法,通过装饰器@classmethod来标明,可以通过实例对象或类对象直接调用的方法。 class M

  • 类方法
  • lambda
  • 闭包

  • claSSMethod
  • staticmethod
  • instancemethod

类方法

类方法,通过装饰器@classmethod来标明,可以通过实例对象或类对象直接调用的方法。

class MyClass(object):
    def __init__(self):
        pass
    
    def imethod(self):
        pass
    
    @classmethod
    def cmethod(cls):
        pass

__init__方法是实例方法,其只在实例化对象的时候才会调用。而类方法cmethod()则是在实例对象时可以调用,直接用类调用也可以调用。

m = MyClass()  # __init__ 初始化方法调用
MyClass.cmethod() # 通过类即可调用 类方法
m.cmethod()  # 实例对象也可以调用 类方法
m.imethod()  # 实例方法仅能对象实例对象调用

实例方法

实例方法相比于类方法,因为其仅能在通过实例对象来调用,无法直接通过类对象调用,即不加@classmethod@staticmethod的方法


class Myclass(object):
    def __init__(self):
        pass
    
    def test1(self):
        pass
    
    def test2(self):
        pass

上面demo中__init__test1test2都是实例方法,仅能通过实例对象来调用


静态方法

静态方法如同普通的函数,其调用可以直接通过类、实例对象来调用,不可以直接调用,即直接使用方法名来调用是不可以的。

# coding: utf-8
class MyClass(object):
    def __init__(self):
        pass

    @staticmethod
    def smethod1():
        pass
       
    def test():
        self.smethod1()


if __name__ == '__main__':
    MyClass.smethod1()  # 通过类对象来调用
    m = MyClass()   
    m.smethod1()  # 通过实例对象来调用 
    m.test()  # 另一种通过实例对象来调用静态方法

类方法,实例方法和静态方法的调用区别

  • 类方法:通过 实例对象和类调用
  • 实例方法: 仅能通过实例对象调用
  • 静态方法:通过类或实例对象调用,不可以直接调用

from functools import reduce


def myadd(x, y):
    return x+y


mlist = list(map(lambda x: x**2, [i for i in range(20)]))
flist = list(filter(lambda x: (x%3) == 0, [i for i in range(20)]))
r = reduce(myadd, [i for i in range(20)])

# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361]
print(mlist)
# [0, 3, 6, 9, 12, 15, 18]
print(flist)
# 190
print(r)

lambda匿名函数,其短小精悍,现写现用,不用另外编写一个函数。如上所示
map返回是一个迭代器,list负责将生成器转变为列表
filter返回的是一个生成迭代器,其将函数里荷合条件的数据拿出来,换成map执行以上代码,将返回bool
reduce返回也是一个迭代器,在这个例子中,数据在myadd不断迭代相加,得到数值190python2是可以直接使用,python3其在functools中。


理解:后面会补充
参考资料

# coding: utf-8


def close(mss):
    def hello(name):
        print(mss, name)
    return hello


h = close("你好!")
h("小伟")
h("小小伟")
"""
你好! 小伟
你好! 小小伟
"""

--结束END--

本文标题: Python之类方法,lambda,闭包

本文链接: https://www.lsjlt.com/news/181070.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python之类方法,lambda,闭包
    类方法 lambda 闭包 classmethod staticmethod instancemethod 类方法 类方法,通过装饰器@classmethod来标明,可以通过实例对象或类对象直接调用的方法。 class M...
    99+
    2023-01-30
    方法 Python lambda
  • Kotlin的Lambda闭包语法
    Lambda 表达式是一种在现代编程语言中常见的特性,它可以用来创建匿名函数或代码块,使得将函数作为参数传递、简化代码以及实现函数式编程范式变得更加便捷。Lambda 表达式在函数式编程语言中得到广泛应用,也在诸如 Java 8 和 Kot...
    99+
    2023-08-30
    开发语言 Kotlin基础 java android
  • Python闭包的使用方法
    目录1.闭包的定义和使用2.闭包内函数修改外函数定义的变量(加nonlocal)1.闭包的定义和使用 当返回的内部函数使用了外部函数的变量就形成了闭包闭包可以对外部函数的变量进行保存...
    99+
    2022-11-10
  • Python中闭包与lambda的作用域解析
    本篇文章给大家带来了关于Python的相关知识,其中主要整理了关于lambda的作用域的相关问题,还有Python中闭包的相关内容,下面一起来看一下,希望对大家有帮助。【相关推荐:Python3视频教程 】Python闭包与lambda的作...
    99+
    2022-08-08
    python
  • Python中闭包与lambda的作用域怎么写
    这篇文章主要介绍“Python中闭包与lambda的作用域怎么写”,在日常操作中,相信很多人在Python中闭包与lambda的作用域怎么写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中闭包与l...
    99+
    2023-07-02
  • Python函数式编程之闭包
    -------------------------函数式编程之*******闭包------------------------ Note: 一:简介 函数式编程不是程序必须要的,但是对于简化程序有很重要的作用。 Python...
    99+
    2023-01-30
    函数 Python
  • JS之闭包的用法分析
    这篇文章将为大家详细讲解有关JS之闭包的用法分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。直接上代码<!DOCTYPE html> <ht...
    99+
    2022-10-19
  • python高级语法之闭包和装饰器详解
    目录一、闭包二、一个简单的例子三、装饰器3.1 简单装饰器3.1.1 使用装饰器的语法糖3.1.2 装饰器的执行时机3.2 通用装饰器3.2.1 装饰带有参数的函数3.2.2. 装饰...
    99+
    2022-11-12
  • Python 基础教程之包和类的用法
    Python 基础教程之包和类的用法 建立一个文件夹filePackage 在filePackage 文件夹内创建 __init__.py 有了 __init__.py ,filePackage才算...
    99+
    2022-06-04
    基础教程 Python
  • python基础之类方法和静态方法
    目录类方法静态方法复习总结类方法 class People: country='China' # 类方法 用classmethod来修饰 @classm...
    99+
    2022-11-12
  • python 面向对象之类方法
    类方法通过@classmethod装饰器实现,类方法和普通方法的区别是, 类方法只能访问类变量,不能访问实例变量举个例子class Dog(object):     def __i...
    99+
    2023-01-30
    面向对象 方法 python
  • python函数进阶之闭包函数
    目录闭包函数什么是闭包函数判断是否是闭包函数\__closure__cell_contents闭包函数的特点闭包函数的意义闭包函数 什么是闭包函数 如果内函数使用了外函数的局部变量,...
    99+
    2022-11-10
  • Python全栈之作用域和闭包
    目录1.return返回值2.全局变量_局部变量3.函数名的使用4.函数的嵌套4.1函数的嵌套4.2nonlocal的使用5.闭包函数的定义6.闭包的特点_意义小提示:7.小练习总结...
    99+
    2022-11-12
  • python总结之闭包和装饰器
    目录一、装饰器1.装饰器的简单介绍2.装饰器的解析过程二、闭包三、闭包中nonlocal语句的使用1.外部变量的引用和改写2.nolocal的使用及特点四、闭包与装饰器五、闭包的作用...
    99+
    2022-11-12
  • Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
    1. 匿名函数 匿名函数(anonymous function)是指未与任何标识符绑定的函数,多用在functional programming languages领域,典型应用场合: 1) 作为参数传给高...
    99+
    2022-06-04
    几个 表达式 语法
  • Python闭包函数的用法
    本篇内容主要讲解“Python闭包函数的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python闭包函数的用法”吧!简而言之, 闭包的特点就是内部函数引用了外部函数中的变量。 在Pytho...
    99+
    2023-06-02
  • Python闭包的基本使用方法有哪些
    这篇文章主要介绍“Python闭包的基本使用方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python闭包的基本使用方法有哪些”文章能帮助大家解决问题。什么是闭包闭包(Closure)是一...
    99+
    2023-07-05
  • 如何使用闭包方法
    本篇内容介绍了“如何使用闭包方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是 Python 闭包首先,让我使用一个简单的示例来说明什...
    99+
    2023-06-15
  • python 第一类对象 闭包 迭代器
      def fn():     print("我叫fn") fn() print(fn)## <function fn at 0x0000000001D12E18> fn() gn = fn #函数名可以进行赋值 ...
    99+
    2023-01-30
    第一类 对象 迭代
  • Python 类方法和静态方法之间的区别
    目录前言1. 实例方法 instance method2. 类方法 class method3. 静态方法 static method前言 类中不仅可以有 methods,还可以有变...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作