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是编译运行的验证方法
Jan 30 Python
python简单实现基数排序算法
May 16 Python
python实现发送和获取手机短信验证码
Jan 15 Python
Python的re模块正则表达式操作
May 25 Python
Python内置数据结构与操作符的练习题集锦
Jul 01 Python
教你使用python实现微信每天给女朋友说晚安
Mar 23 Python
对Python+opencv将图片生成视频的实例详解
Jan 08 Python
利用Django模版生成树状结构实例代码
May 19 Python
Python SQLAlchemy入门教程(基本用法)
Nov 11 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
Apr 07 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
Jun 02 Python
Pycharm操作Git及GitHub的步骤详解
Oct 27 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作的文本留言本的例子(六)
2006/10/09 PHP
PHP5中的this,self和parent关键字详解教程
2007/03/19 PHP
PHP+MySQL 手工注入语句大全 推荐
2009/10/30 PHP
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
php通过各种函数判断0和空
2020/07/04 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
用表格输出1-1000之间的数字实现代码(附特效)
2013/04/21 Javascript
javascript实现数字验证码的简单实例
2014/02/10 Javascript
如何设置一定时间内只能发送一次请求
2014/02/28 Javascript
JS弹出可拖拽可关闭的div层完整实例
2015/02/13 Javascript
jquery $.trim()去除字符串空格的实现方法【附图例】
2016/03/30 Javascript
js内置对象处理_打印学生成绩单的简单实现
2016/09/24 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
javascript  删除select中的所有option的实例
2017/09/17 Javascript
VUE组件中的 Drawer 抽屉实现代码
2019/08/06 Javascript
JS实现简单日历特效
2020/01/03 Javascript
WebPack工具运行原理及入门教程
2020/12/02 Javascript
[43:43]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第一场 11.22
2020/11/24 DOTA
爬山算法简介和Python实现实例
2014/04/26 Python
Python实现的多线程端口扫描工具分享
2015/01/21 Python
利用Fn.py库在Python中进行函数式编程
2015/04/22 Python
python生成验证码图片代码分享
2016/01/28 Python
python 接口返回的json字符串实例
2018/03/27 Python
Python爬虫实现验证码登录代码实例
2019/05/10 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
python pygame实现挡板弹球游戏
2019/11/25 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
Python基于time模块表示时间常用方法
2020/06/18 Python
安装Anaconda3及使用Jupyter的方法
2020/10/27 Python
珠宝店促销方案
2014/03/21 职场文书
班子四风对照检查材料
2014/08/21 职场文书
先进学校事迹材料
2014/12/30 职场文书
生日宴会家属答谢词
2015/09/29 职场文书
创业计划书之奶茶店开店方案范本!
2019/08/06 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
解决Oracle数据库用户密码过期
2022/05/11 Oracle