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 相关文章推荐
tensorflow获取变量维度信息
Mar 10 Python
Python实现将数据框数据写入mongodb及mysql数据库的方法
Apr 02 Python
Django contenttypes 框架详解(小结)
Aug 13 Python
python笔记之mean()函数实现求取均值的功能代码
Jul 05 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
Jan 20 Python
keras获得某一层或者某层权重的输出实例
Jan 24 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
Feb 26 Python
Keras 使用 Lambda层详解
Jun 10 Python
Keras: model实现固定部分layer,训练部分layer操作
Jun 28 Python
如何真正的了解python装饰器
Aug 14 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
Nov 20 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
Jan 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
phpmyadmin 3.4 空密码登录的实现方法
2010/05/29 PHP
php实现数组筛选奇数和偶数示例
2014/04/11 PHP
WordPress开发中短代码的实现及相关函数使用技巧
2016/01/05 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
Yii框架安装简明教程
2020/05/15 PHP
使用户点击后退按钮使效三行代码
2007/07/07 Javascript
javascript中的继承实例代码
2011/04/27 Javascript
JavaScript的setAttribute兼容性问题解决方法
2013/11/11 Javascript
浅谈webpack 自动刷新与解析
2018/04/09 Javascript
vue实现选项卡及选项卡切换效果
2018/04/24 Javascript
浅谈Node.js 沙箱环境
2018/05/15 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
javascript实现动态时钟的启动和停止
2020/07/29 Javascript
vue 解决addRoutes多次添加路由重复的操作
2020/08/04 Javascript
关于vue属性使用和不使用冒号的区别说明
2020/10/22 Javascript
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
[00:32]2018DOTA2亚洲邀请赛出场——LGD
2018/04/04 DOTA
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
使用python 获取进程pid号的方法
2014/03/10 Python
Python用Bottle轻量级框架进行Web开发
2016/06/08 Python
使用python调用zxing库生成二维码图片详解
2017/01/10 Python
对numpy中array和asarray的区别详解
2018/04/17 Python
使用tensorflow实现线性回归
2018/09/08 Python
Django项目中使用JWT的实现代码
2019/11/04 Python
python类共享变量操作
2020/09/03 Python
解决selenium+Headless Chrome实现不弹出浏览器自动化登录的问题
2021/01/09 Python
css3实现二维码扫描特效的示例
2020/10/29 HTML / CSS
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
教师自我鉴定范文
2014/03/20 职场文书
2014年党员承诺书范文
2014/05/20 职场文书
2014第二批党员干部对照“四风”找差距检查材料思想汇报
2014/09/18 职场文书
考研导师推荐信范文
2015/03/27 职场文书
2016年元旦主持词
2015/07/06 职场文书
军事理论课感想
2015/08/11 职场文书
导游词之西江千户苗寨
2019/12/24 职场文书