当前位置:首页 > 编程教程 > Python技术文章 > python类方法和普通方法区别

比较python类方法和普通方法

  • 发布时间:
  • 作者:码农之家
  • 点击:165

这篇文章主要知识点是关于python类方法、普通方法、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

预测分析建模:Python与R语言实现
  • 类型:建模大小:79.4 MB格式:PDF作者:托马斯
立即下载

Tags:python类方法 

python类方法和普通方法区别

python类方法和普通方法区别

python类方法和普通方法区别

下面用例子的方式,说明其区别。

首先, 定义一个类,包括2个方法:

class Apple(object):
        def get_apple(self, n):
                print "apple: %s,%s" % (self,n)
        @classmethod
        def get_class_apple(cls, n):
                print "apple: %s,%s" % (cls,n)

类的普通方法

类的普通方法,需要类的实例调用。

a = Apple()
a.get_apple(2)

输出结果

apple: <__main__.Apple object at 0x7fa3a9202ed0>,2

再看绑定关系:

print (a.get_apple)
<bound method Apple.get_apple of <__main__.Apple object at 0x7fa3a9202ed0>>

类的普通方法,只能用类的实例去使用。如果用类调用普通方法,出现如下错误:

Apple.get_apple(2)
Traceback (most recent call last): File "static.py", line 22, in <module> Apple.get_apple(2) TypeError: unbound method get_apple() must be called with Apple instance as first argument (got int instance instead)

类方法

类方法,表示方法绑定到类。

a.get_class_apple(3)
Apple.get_class_apple(3)
apple: <class '__main__.Apple'>,3
apple: <class '__main__.Apple'>,3

再看绑定关系:

print (a.get_class_apple) print (Apple.get_class_apple)

输出结果,用实例和用类调用是一样的。

<bound method type.get_class_apple of <class '__main__.Apple'>> <bound method type.get_class_apple of <class '__main__.Apple'>>

相关推荐:《Python教程》

以上就是python类方法和普通方法区别的详细内容,更多请关注码农之家其它相关文章!

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

Python 相关电子书
学习笔记
网友NO.843131

python类方法和实例方法的区别

Python中比较常见的方法类型,即实例方法,类方法。它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文。 首先,这些方法都定义在类中。下面我先简单说一下怎么定义和调用的。(PS:实例对象的权限最大。) 实例方法 (推荐学习:Python视频教程) 定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法(也可以传类的属性和方法); 调用:只能由实例对象调用。 类方法 定义:使用装饰器@classmethod。第一个参数必须是当前类对象,该参数名一般约定为“cls”,通过它来传递类的属性和方法(不能传实例的属性和方法); 调用:实例对象和类对象都可以调用。 实例方法 简而言之,实例方法就是类的实例能够使用的方法。这里不做过多解释。 类方法 使用装饰器@classmethod。 原则上,……

网友NO.135972

python类方法和静态方法的区别

Python完全支持定义类方法,甚至支持定义静态方法。Python的类方法和静态方法很相似,它们都推荐使用类来调用(其实也可使用对象来调用)。 类方法和静态方法的区别 Python会自动绑定类方法的第一个参数,类方法的第一个参数(通常建议参数名为 cls)会自动绑定到类本身;但对于静态方法则不会自动绑定。 使用 @classmethod 修饰的方法就是类方法;使用 @staticmethod 修饰的方法就是静态方法。 相关推荐:《Python视频教程》 下面代码示范了定义类方法和静态方法: class Bird: # classmethod修饰的方法是类方法 @classmethod def fly (cls): print('类方法fly: ', cls) # staticmethod修饰的方法是静态方法 @staticmethod def info (p): print('静态方法info: ', p)# 调用类方法,Bird类会自动绑定到第一个参数Bird.fly() #①# 调用静态方法,不会自动绑定,因此程序必须手动绑定第一个参数Bi……

<
1
>

电子书 编程教程 PC软件下载 安卓软件下载

Copyright 2018-2020 xz577.com 码农之家

本站所有电子书资源不再提供下载地址,只分享来路

免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

版权投诉 / 书籍推广 / 赞助:QQ:520161757