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 相关文章推荐
Java Web开发过程中登陆模块的验证码的实现方式总结
May 25 Python
Python的Flask框架中的Jinja2模板引擎学习教程
Jun 30 Python
Python编写Windows Service服务程序
Jan 04 Python
对Python Pexpect 模块的使用说明详解
Feb 14 Python
Python实现的爬取百度贴吧图片功能完整示例
May 10 Python
python中的句柄操作的方法示例
Jun 20 Python
python虚拟环境完美部署教程
Aug 06 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
Aug 15 Python
Django获取model中的字段名和字段的verbose_name方式
May 19 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
Sep 01 Python
Python 远程开关机的方法
Nov 18 Python
python中数组和列表的简单实例
Mar 25 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
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
php微信公众号开发之简答题
2018/10/20 PHP
yii2 url重写并隐藏index.php方法
2018/12/10 PHP
JavaScript 学习初步 入门教程
2010/03/25 Javascript
js创建数据共享接口——简化框架之间相互传值
2011/10/23 Javascript
基于KMP算法JavaScript的实现方法分析
2013/05/03 Javascript
IE8中使用javascript动态加载CSS的解决方法
2014/06/17 Javascript
Javascript 多物体运动的实现
2014/12/24 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法
2016/01/18 Javascript
JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件
2016/10/10 Javascript
JQuery.validationEngine表单验证插件(推荐)
2016/12/10 Javascript
BootStrapValidator校验方式
2016/12/19 Javascript
Canvas实现动态的雪花效果
2017/02/13 Javascript
详解vue-router 2.0 常用基础知识点之router-link
2017/05/10 Javascript
ionic实现底部分享功能
2017/05/11 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
解决Layui 表单提交数据为空的问题
2018/08/15 Javascript
vue组件tabbar使用方法详解
2018/11/06 Javascript
微信小程序中如何计算距离某个节日还有多少天
2019/07/15 Javascript
vue+element-ui+axios实现图片上传
2019/08/20 Javascript
微信小程序实现图片压缩
2019/12/03 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
2020/01/18 Javascript
javascript将16进制的字符串转换为10进制整数hex
2020/03/05 Javascript
[05:03]显微镜下的DOTA2第十期——Ti3豪之超神幽鬼
2014/06/23 DOTA
在Python的Django框架的视图中使用Session的方法
2015/07/23 Python
python安装教程 Pycharm安装详细教程
2017/05/02 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
2018/02/23 Python
Python告诉你木马程序的键盘记录原理
2019/02/02 Python
Python的Lambda函数用法详解
2019/09/03 Python
python 3.8.3 安装配置图文教程
2020/05/21 Python
西班牙床垫网上商店:Colchones.es
2018/05/06 全球购物
求职意向书范文
2014/04/01 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
2015年档案管理员工作总结
2015/05/13 职场文书
2015高中教师个人工作总结
2015/07/21 职场文书