python中的3种定义类方法


Posted in Python onNovember 27, 2021

python中的3种定义类方法:

  • 普通方法
  • 类方法(@classmethod)
  • 类方法(@classmethod)

1、普通方法

创建普通的方法的方式有两种(class A() & class B()).

class A():

    def __init__(self, name, age):

        self.name = name

        self.age = age

    def get_name(self):

        print('my name is', self.name)

    def get_age(self):

        print(f'i am {self.age} years old')

class B():

    def get_name(self, name):

        print('my name is', name)

    def get_age(self, age):

        print(f'i am {age} years old')

if __name__ == '__main__':

    a = A('tom',19)

    a.get_name()  # my name is tom

    a.get_age() # i am 19 years old

    b = B()

    b.get_name('tom')  # my name is tom

    b.get_age(19) # i am 19 years old

class A() 中, __init__()是一个特殊的方法,相当于对A进行初始化,__init__ 中的self是对象A本身,nameage是它们的形参。

  每次调用方法之前需要对类进行实例化

2、类方法

@classmethod不需要self来表示自身了,而是用了cls来代替。

此时不用再进行实例化了。直接 类名.函数名 进行调用。

#Python学习交流群:725638078

class C():

    @classmethod

    def get_name(cls, name):

        print(cls)  # <class '__main__.C'>

        print('my name is %s' % name)

    @classmethod

    def get_age(cls, age):

        print(f'i am %s years old' % age)

if __name__ == '__main__':

    C.get_name('tom')  # my name is tom

    C.get_age(19) # i am 19 years old

3、静态方法

@staticmethod也是通过 类名.函数名 的方式进行调用

静态方法不需要表示自身对象的self或者cls作为参数,跟直接使用函数是一样的。

class D():

    @staticmethod

    def get_name(name):

        print('my name is %s' % name)

    @staticmethod

    def get_age(age):

        print(f'i am %s years old' % age)

 

if __name__ == '__main__':

    D.get_name('tom')  # my name is tom

    D.get_age(19) # i am 19 years old

4、总结

@staticmethod @classmethodPython中称为 装饰器,

用来修饰函数,相当于添加一个额外的功能,比如不再像普通函数那样进行实例化。

通过使用装饰器可以让代码更加整洁,易读。用了修饰器之后,也可以进行实例化之后再调用,但是就显得多此一举了。

到此这篇关于 python中的3种定义类方法的文章就介绍到这了,更多相关 python 定义类方法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python中 ? : 三元表达式的使用介绍
Oct 09 Python
Python中的ConfigParser模块使用详解
May 04 Python
Python加pyGame实现的简单拼图游戏实例
May 15 Python
python3.6+django2.0开发一套学员管理系统
Mar 03 Python
Win8下python3.5.1安装教程
Jul 29 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
Apr 04 Python
python中aioysql(异步操作MySQL)的方法
Apr 11 Python
关于Tensorflow使用CPU报错的解决方式
Feb 05 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
Mar 06 Python
解决pip安装的第三方包在PyCharm无法导入的问题
Oct 15 Python
pandas apply使用多列计算生成新的列实现示例
Feb 24 Python
解决pytorch读取自制数据集出现过的问题
May 31 Python
5道关于python基础 while循环练习题
Nov 27 #Python
Python中的pprint模块
Nov 27 #Python
python 多态 协议 鸭子类型详解
Nov 27 #Python
Python机器学习实战之k-近邻算法的实现
Python Django项目和应用的创建详解
python playwright 自动等待和断言详解
Nov 27 #Python
Python实现制作销售数据可视化看板详解
You might like
用PHP和ACCESS写聊天室(十)
2006/10/09 PHP
php动态变量定义及使用
2015/06/10 PHP
php需登录的文件上传管理系统
2020/03/21 PHP
解析WordPress中的post_class与get_post_class函数
2016/01/04 PHP
Zend Framework分页类用法详解
2016/03/22 PHP
CI框架实现框架前后端分离的方法详解
2016/12/30 PHP
详谈php中 strtr 和 str_replace 的效率问题
2017/05/14 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
2018/03/31 PHP
PHP实现数组根据某个单元字段排序操作示例
2018/08/01 PHP
前台js调用后台方法示例
2013/12/02 Javascript
jquery中对于批量deferred的处理方法
2014/01/22 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
怎么限制input的text里输入的值只能是数字(正则、js)
2016/05/16 Javascript
去除html代码里面的script正则方法
2016/05/19 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
jQuery中的100个技巧汇总
2016/12/15 Javascript
jquery submit()不能提交表单的解决方法
2017/04/24 jQuery
浅谈Express.js解析Post数据类型的正确姿势
2019/05/30 Javascript
JavaScript实现拖动对话框效果的实现代码
2020/10/12 Javascript
js实现磁性吸附的示例
2020/10/26 Javascript
Python与shell的3种交互方式介绍
2015/04/11 Python
Python判断值是否在list或set中的性能对比分析
2016/04/16 Python
简单了解Python中的几种函数
2017/11/03 Python
Python实现的简单计算器功能详解
2018/08/25 Python
django框架实现模板中获取request 的各种信息示例
2019/07/01 Python
Python实现PyPDF2处理PDF文件的方法示例
2019/09/25 Python
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
计算机专业大学生的自我评价
2013/11/14 职场文书
自动化专业个人求职信范文
2013/12/30 职场文书
七年级数学教学反思
2014/01/22 职场文书
金融系应届毕业生求职信
2014/05/26 职场文书
幼儿园标语大全
2014/06/19 职场文书
2014县委书记四风对照检查材料思想汇报
2014/09/21 职场文书
2014村党支部书记党建工作汇报材料
2014/11/02 职场文书
企业群众路线教育实践活动心得体会
2014/11/03 职场文书
2015年秋季运动会前导词
2015/07/20 职场文书