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的*args和**kwargs用法
Nov 01 Python
Python实现动态添加类的属性或成员函数的解决方法
Jul 16 Python
python处理文本文件实现生成指定格式文件的方法
Jul 31 Python
对于Python的Django框架使用的一些实用建议
Apr 03 Python
python实现爬取图书封面
Jul 05 Python
pyqt5利用pyqtDesigner实现登录界面
Mar 28 Python
Django中使用极验Geetest滑动验证码过程解析
Jul 31 Python
Python多继承以及MRO顺序的使用
Nov 11 Python
Tensorflow--取tensorf指定列的操作方式
Jun 30 Python
django rest framework 自定义返回方式
Jul 12 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
Oct 29 Python
python在地图上画比例的实例详解
Nov 13 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
在IIS上安装PHP4.0正式版
2006/10/09 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
用jscript实现新建word文档
2007/06/15 Javascript
JQuery 学习笔记01 JQuery初接触
2010/05/06 Javascript
dreamweaver 安装Jquery智能提示
2011/04/02 Javascript
javascript操作excel生成报表示例
2014/05/08 Javascript
Javascript基础教程之数组 array
2015/01/18 Javascript
初步认识JavaScript函数库jQuery
2015/06/18 Javascript
jquery实现动静态条形统计图
2015/08/17 Javascript
jQuery实现图片走马灯效果的原理分析
2016/01/16 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
2016/01/28 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
JavaScript实现表单注册、表单验证、运算符功能
2018/10/15 Javascript
angular 实现下拉列表组件的示例代码
2019/03/09 Javascript
初试vue-cli使用HBuilderx打包app的坑
2019/07/17 Javascript
js实现GIF图片的分解和合成
2019/10/24 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
JS实现拼图游戏
2021/01/29 Javascript
详解小程序横屏方案对比
2020/06/28 Javascript
Python中使用dom模块生成XML文件示例
2015/04/05 Python
1分钟快速生成用于网页内容提取的xslt
2018/02/23 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
在Python中构建增广矩阵的实现方法
2019/07/01 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
Python decimal模块使用方法详解
2020/06/08 Python
CSS3+Sprite实现僵尸行走动画特效源码
2016/01/27 HTML / CSS
澳大利亚男士西服品牌:M.J.Bale
2018/02/06 全球购物
最常使用的求职信
2014/05/25 职场文书
党校学习党性分析材料
2014/12/19 职场文书
先进单位事迹材料
2014/12/25 职场文书
评先进个人材料
2014/12/29 职场文书
开票证明
2015/06/23 职场文书
《风娃娃》教学反思
2016/02/18 职场文书
Django操作cookie的实现
2021/05/26 Python
SpringBoot 集成Redis 过程
2021/06/02 Redis