精华内容
下载资源
问答
  • python2和python3 map函数区别

    千次阅读 2017-09-08 23:15:00
    map()是 Python内置的高阶函数,它接收一个函数 f 一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。def f(x): return x*x print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])执行...

    map()是 Python内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。

    def f(x):
        return x*x
    print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])

    执行结果:[1, 4, 9, 10, 25, 36, 49, 64, 81]
    但是在python3返回的是
    这里写图片描述

    现在我们只需要将print(map(f,[1,2,3,4]))写成print(list(map(f,[1,2,3,4])))就好了。

    因为在python3接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 tuple 并返回。
    所以我们直接强制转化就ok了
    这里写图片描述

    展开全文
  • 静态函数, 类函数, 成员函数区别 本文地址: http://blog.csdn.net/caroline_wendy/article/details/23383995

    静态函数(staticmethod), 类函数(classmethod), 成员函数的区别(完全解析)


    版权所有, 禁止转载, 如有需要, 请站内联系.


    本文地址: http://blog.csdn.net/caroline_wendy/article/details/23383995


    定义:

    静态函数(@staticmethod): 即静态方法,主要处理与这个类的逻辑关联, 如验证数据;

    类函数(@classmethod):即类方法, 更关注于从类中调用方法, 而不是在实例中调用方法, 如构造重载;

    成员函数: 实例的方法, 只能通过实例进行调用;

    代码:

    # -*- coding: utf-8 -*-
    
    #eclipse pydev, python 3.3
    #by C.L.Wang
    
    class A(object):
        
        _g = 1
        
        def foo(self,x):
            print('executing foo(%s,%s)'%(self,x))
    
        @classmethod
        def class_foo(cls,x):
            print('executing class_foo(%s,%s)'%(cls,x))
    
        @staticmethod
        def static_foo(x):
            print('executing static_foo(%s)'%x)   
    
    a = A()
    a.foo(1)
    a.class_foo(1)
    A.class_foo(1)
    a.static_foo(1)
    A.static_foo('hi')
    print(a.foo)
    print(a.class_foo)
    print(a.static_foo)
    

    输出:

    executing foo(<__main__.A object at 0x01E2E1B0>,1)
    executing class_foo(<class '__main__.A'>,1)
    executing class_foo(<class '__main__.A'>,1)
    executing static_foo(1)
    executing static_foo(hi)
    <bound method A.foo of <__main__.A object at 0x01E2E1B0>>
    <bound method type.class_foo of <class '__main__.A'>>
    <function A.static_foo at 0x01E7E618>

    具体应用:

    比如日期的方法, 可以通过实例化(__init__)进行数据输出;

    可以通过类方法(@classmethod)进行数据转换;

    可以通过静态方法(@staticmethod)进行数据验证;


    代码:

    # -*- coding: utf-8 -*-
    
    #eclipse pydev, python 3.3
    #by C.L.Wang
    
    class Date(object):
    
        day = 0
        month = 0
        year = 0
    
        def __init__(self, day=0, month=0, year=0):
            self.day = day
            self.month = month
            self.year = year
            
        def display(self):
            return "{0}*{1}*{2}".format(self.day, self.month, self.year)
        
        @classmethod
        def from_string(cls, date_as_string):
            day, month, year = map(int, date_as_string.split('-'))
            date1 = cls(day, month, year)
            return date1
        
        @staticmethod
        def is_date_valid(date_as_string):
            day, month, year = map(int, date_as_string.split('-'))
            return day <= 31 and month <= 12 and year <= 3999
        
    date1 = Date('12', '11', '2014')
    date2 = Date.from_string('11-13-2014')
    print(date1.display())
    print(date2.display())
    print(date2.is_date_valid('11-13-2014'))
    print(Date.is_date_valid('11-13-2014'))
    

    输出:

    12*11*2014
    11*13*2014
    False
    False
    

    参考:

    http://stackoverflow.com/questions/12179271/python-classmethod-and-staticmethod-for-beginner

    http://stackoverflow.com/questions/136097/what-is-the-difference-between-staticmethod-and-classmethod-in-python





    展开全文
  • python 成员函数

    万次阅读 2016-10-08 14:30:44
    出处: ... 1.关于定义的一些奇特之处  今天在Python中定义一个,很奇怪,不需要事先声明它的成员变量吗?暂时不知,先记录下来:   class Account(object):  "一个简单的"  account_

    出处: http://cowboy.1988.blog.163.com/blog/static/75105798201091141521583/

    1.关于定义类的一些奇特之处
      今天在Python中定义一个类,很奇怪,不需要事先声明它的成员变量吗?暂时不知,先记录下来:
       

    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客class Account(object):
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客    
    "一个简单的类"
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客    account_type
    ="Basic"
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客    
    def __init__(self,name,balance):
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客        
    "初始化一个新的Account实例"
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客        self.name
    =name
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客        self.balance
    =balance
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客    
    def deposit(self,amt):
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客        
    "存款"
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客        self.balance
    =self.balance+amt
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客    
    def withdraw(self,amt):
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客        
    "取款"
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客        self.balance
    =self.balance-amt
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客    
    def inquiry(self):
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客        
    "返回当前余额"
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客        
    return self.balance

       其中,__init__函数就是Python中的构造函数吧?另外,balance这个变量没有在类中定义,却直接拿来使用,虽然说脚本语言可以预先不定义变量,但是在类中,定义一下是不是可以使类更清晰呢?

        另外,在python中类中定义成员函数一般第一个参数总是self,表示自已的实例,与C++中的this指针差不多,不过C++中的this指针是隐函于其中并全局可见的,而在Python中却要作为参数传进去, 这是Python中定义类的另一个特点。 

        还有一个特点,在类的成员函数中,使用类中的另一个成员函数,前面必须要指定类名,如下:
       
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客 class Foo(object):
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客     
    def bar(self):
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客         
    print "bar!"
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客     
    def spam(self):
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客         bar(self)   //  错误的

    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客
             Foo.bar(self) //  合法的
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客



    2.在类中声时静态方法并使用静态方法

        要在类中使用静态方法,需在类成员函数前面加上@staticmethod标记符,以表示下面的成员函数是静态函数。使用静态方法的好处是,不需要定义实例即可使用这个方法:另外,多个实例共享此静态方法,如下:
       

    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客class SimClass():
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客   @staticmethod
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客   def ShareStr():
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客      print "This is a static Method"
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客SimClass.ShareStr()  #使用静态函数


    3.类方法:

        类方法与普通的成员函数和静态函数有不同之处,在接触的语言中好像也没见过这种语义,看它的定义:

        一个类方法就可以通过类或它的实例来调用的方法, 不管你是用类来调用这个方法还是类实例调用这个方法,该方法的第一个参数总是定义该方法的类对象。 
        记住:方法的第一个参数都是类对象而不是实例对象. 
        按照惯例,类方法的第一个形参被命名为 cls. 任何时候定义类方法都不是必须的(类方法能实现的功能都可以通过定义一个普通函数来实现,只要这个函数接受一个类对象做为参数就可以了). 
        定义类方法并使用类方法:

    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客class ABase(object):
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客    @classmethod        
    #类方法修饰符
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客
        def aclassmet(cls): print 'a class method for', cls.__name__
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客
    class ADeriv(ABase): pass
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客bInstance 
    = ABase(  )
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客dInstance 
    = ADeriv(  )
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客ABase.aclassmet(  )               
    # prints: a class method for ABase
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客
    bInstance.aclassmet(  )           # prints: a class method for ABase
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客
    ADeriv.aclassmet(  )              # prints: a class method for ADeriv
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客
    dInstance.aclassmet(  )           # prints: a class method for ADeriv

        也就是说,类方法并不是必须的,使用普通函数也可以实现类方法的功能。

    4.类的继承
       

    在python中,继承一个类,就像这样:
        class A(object)  #继承object类
                #.......
        class B(A)         #继承A类
                #........

    另外,python中支持多继承,对于多继承,找某个对应的函数,其python有相应的方法,如:
       
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客 class D(oject): pass                    #D继承自object
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客
        class B(D):                             #B是D的子类
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客
            varB = 42
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客        
    def method1(self):
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客            
    print "Class B : method1"
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客    
    class C(D):                             #C也是D的子类
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客
            varC = 37
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客        
    def method1(self):
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客            
    print "Class C : method1"
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客       
    def method2(self):
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客           
    print "Class C : method2"
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客   
    class A(B,C):                           #A是B和C的子类
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客
           varA = 3.3
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客       
    def method3(self):
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客          
    print "Class A : method3"
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客

        如果我要调用A.method1() ,会出现什么结果?答案是ClassB:method1. 书上是只样介绍的:
    当搜索在基类中定义的某个属性时,Python采用深度优先的原则、按照子类定义中的基类顺序进行搜索。**注意**(new-style类已经改变了这种行为)。上边例子中,如果访问 A.varB ,就会按照A-B-D-C-D这个顺序进行搜索,只要找到就停止搜索.若有多个基类定义同一属性的情况,则只使用第一个被找到属性值:


    5.数据隐藏

    在python中实现数据隐藏很简单,不需要在前面加什么关键字,只要把类变量名或成员函数前面加两个下划线即可实现数据隐藏的功能,这样,对于类的实例来说,其变量名和成员函数是不能使用的,对于其类的继承类来说,也是隐藏的,这样,其继承类可以定义其一模一样的变量名或成员函数名,而不会引起命名冲突。

    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客 class A:
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客       
    def __init__(self):
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客          self.
    __X = 3        # self._A__X
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客
        
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客    
    class B(A):
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客       
    def __init__(self):
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客          A.
    __init__(self)
    python 静态函数 类 - cowboy小屋 - cowboy小屋的博客          self.
    __X = 37       # self._B__X
    展开全文
  • Python函数和方法的区别

    万次阅读 多人点赞 2018-09-27 18:59:17
    Python函数和方法是有区别的。 区别一所处的位置:函数是直接写文件中而不是class中,方法是只能写在class中。 区别二定义的方式: 1.函数定义的方式 def关键字 然后接函数名 再是括号 括号里面写形参也可以...

    在Python中函数和方法是有区别的。

    区别一所处的位置:函数是直接写文件中而不是class中,方法是只能写在class中。

    区别二定义的方式:

     1.函数定义的方式 def关键字  然后接函数名 再是括号 括号里面写形参也可以省略不写形参 

    def functionName():
        """这里是函数的注释"""
        print("这一块写函数的内容")

     2.方法定义的方式, 首先方法是定义在类中的,其他大体和函数定义差不多,这里需要注意的一点就是方法必须带一个默认参数(相当于this),静态方法除外

    class className(super):
        
        def methodName(self):
            """这里是方法的注释
            self相当于this;
            """
            print("这里是方法的内容")

    区别三调用的方式:

     1.函数的调用:函数的调用是直接写  函数名(函数参数1,函数参数2,......) 

    def functionName():
        print("这是一个函数")
    
    #调用
    functionName()

    2.方法的调用:方法是通过对象点方法调用的(这里是指对象方法)

    class className:
        
        def method(self):
            print("这是一个方法")
    
    #调用---------------------
    #实例化对象
    c=className()
    
    c.method()

     

    展开全文
  • python类函数调用

    千次阅读 2019-10-30 23:03:32
    #函数的定义 Class A: #构造函数: def __init__(self,var1,var2): self.var1 = var1 self.var2 = var2 def b(self,var1,var2): return var1+var2 #函数调用: var1=1 var2=2 #创建对象:...
  • Python 函数和类

    千次阅读 2017-11-23 14:11:20
    为了极大可能的简化代码调用逻辑和书写规则,python中对于函数和类的定义与使用也是及其简单的。函数也可以称作方法的定义使用有两种:一种是通过关键字def定义函数格式,另一种是通过lambda构建一个匿名函数。类的...
  • Python类内部函数的self参数

    千次阅读 2019-04-26 10:14:32
    Python内部函数的第一个参数都是self,这个参数指向调用此函数实例。 内部函数定义时不可以省略self,但是外部函数不需要此函数,理解了self的定义就能理解这一点。 试验中遇到的错误: 在中的函数...
  • Python函数

    万次阅读 多人点赞 2020-10-10 20:25:56
    初识Python中的函数1.1 函数的结构1.2 函数的返回1.3 函数的参数1.4 参数传递的处理1.5 变量作用域(L->E->G->B)2. 各种函数2.1 匿名函数lambda2.2 偏函数2.3 高阶函数3. 闭包4. 装饰器 1. 初识Python中的...
  • python类函数调用要加self

    千次阅读 2019-04-19 22:21:40
    函数一样,Python中的方法也是一种对象。由于既可以通过实例也可以通过来访问方法,所以在Python里有两种风格: 未绑定的方法:没有self 通过来引用方法返回一个未绑定方法对象。要调用它,你必须显示地...
  • Python函数和类

    千次阅读 2018-10-18 16:54:22
    根据约定,在Python中,的名称的首字母是大写的,当然,这只是约定,即名称首字母也可是小写的 用实例做为属性:使用代码模拟实物时,可能会发现自己给添加的细节越来越多:属性方法清单以及文件都...
  • python中append函数和extend函数区别

    千次阅读 2018-08-02 15:02:54
    extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) append()方法实例: 只是在lista后面添加相应字符: 使用append()添加一个字符串list append把list添加进lista,...
  • python中appendextend函数区别

    千次阅读 2017-08-12 22:15:34
    appendextend都是python内置函数,都有扩展列表的元素功能,但两者的扩展方式是不同的。 通过使用?list.append命令查看append函数帮助文档 ?list.append Docstring: L.append(object) -> None -- append object ...
  • python中format函数

    万次阅读 多人点赞 2019-05-14 12:07:45
    python中format函数用于字符串的格式化 通过关键字 1. print('{name}在{option}'.format(name="谢某人",option="写代码")) 结果:谢某人在写代码 通过位置 1. print('name={} path={}'.format('zhangsan', ...
  • python函数指针和类函数指针)

    万次阅读 2018-01-18 21:16:57
    联系信箱:feixiaoxing @163.com】 函数指针和类函数指针在c语言下面的概念都比较简单,用在脚本下面也很方便。因为脚本语言一切类型都是对象,所以根本不存在指针的概念。一般,我们都是这么用的,...
  • python 函数互调的两种用法

    万次阅读 2017-12-07 15:52:57
     用时52ms,其中is_square函数的定义调用参数都有self 第二种,之前加self: class Solution(object):  import math  def is_square(self,n):  s=int(math.sqrt(n))  return s*s==n  def ...
  • 从声明方式来看: 普通成员函数是最一般的方法...成员函数是 class Foo: @classmethod def class_func(): pass 静态函数是 class Foo: @staticmethod def static_func(): pass 从调用方式来看,普通函数...
  • python绘制指数函数

    千次阅读 2020-02-16 10:46:42
    python绘制指数函数
  • python、main函数和argv参数

    万次阅读 2017-02-08 21:34:13
    C语言,C++语言,C#语言,Java语言都时有main函数在的,main是程序执行的起点,Python中,也有类似的运行机制,但方式却截然不同:Python使用缩进对齐组织代码的执行,所有没有缩进的代码(非函数定义和类定义),...
  • Python 成员函数第一个参数self

    千次阅读 2016-04-20 19:44:58
    的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值。这个特别的变量指对象本身,按照惯例它的名称是self。 你一定...
  • Python内置函数

    千次阅读 多人点赞 2019-05-10 15:10:36
    Python内置函数Python abs()函数Python all() 函数Python any() 函数Python basestring() 函数Python bin() 函数Python bool() 函数Python bytearray() 函数Python callable() 函数Python chr() 函数Python ...
  • python 动态加载类和函数的方法

    千次阅读 2019-07-19 18:43:04
    python 动态加载类和函数的方法 用到的python 函数 glob.glob()glob:文件名模式匹配,可以用通配符筛选文件名。 __import__()函数用于动态加载模块 。如果一个模块经常变化就可以使用该方法来动态载入。 getattr...
  • python中三角函数_Python中的三角函数

    千次阅读 2020-06-21 16:14:54
    python中三角函数 Python三角函数/方法 (Python Trigonometric functions/methods) In python programming language, there are some of the built-in functions which are defined in math module – they can be ...
  • Python-内置函数

    千人学习 2017-08-24 09:11:16
    介绍Python的内置函数time
  • Python实现softmax函数

    万次阅读 2019-03-03 18:15:49
    Python实现softmax函数: PS:为了避免求exp(x)出现溢出的情况,一般需要减去最大值。 # -*-coding: utf-8 -*- import tensorflow as tf import numpy as np def softmax(x, axis=1): # 计算每行的最大值 ...
  • Python中的函数

    万次阅读 多人点赞 2018-10-30 12:30:23
    Python内置函数 函数式编程 匿名函数(lambda) 函数作为参数  返回函数(闭包) 装饰器 Python中内置的装饰器 偏函数 高阶函数 map reduce filter sorted 自定义函数 参数 默认参数 可变参数 关键字...
  • python3 构造函数和析构函数

    千次阅读 2018-02-16 21:58:06
    要点: 1、魔法方法,被__双下划线所包围 在适当的时候自动被调用 ...析构函数python的垃圾回收器销毁的时候调用。当某一个对象没有被引用时,垃圾回收器自动回收资源,调用析构函数 #coding=utf-...
  • 方法一:self.方法(参数列表),注意参数列表不需要...# 利用测试次数鸡蛋个数的关系变化带来的确定的楼层数来解题 class dropeggs: def superEggDrop(self, K: int, N: int) -> int: remainTestCount = 1 ...
  • Python模块和函数帮助文档查看

    千次阅读 2015-01-23 17:33:33
    python模块和函数帮助文档查看

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,409,116
精华内容 563,646
关键字:

python类和函数的区别

python 订阅