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魔法方法-属性访问控制详解
Jul 25 Python
window下eclipse安装python插件教程
Apr 24 Python
python的socket编程入门
Jan 29 Python
对web.py设置favicon.ico的方法详解
Dec 04 Python
Django中密码的加密、验密、解密操作
Dec 19 Python
关于windows下Tensorflow和pytorch安装教程
Feb 04 Python
Python如何用filter函数筛选数据
Mar 05 Python
python高阶函数map()和reduce()实例解析
Mar 16 Python
Django media static外部访问Django中的图片设置教程
Apr 07 Python
Python使用socketServer包搭建简易服务器过程详解
Jun 12 Python
Keras实现支持masking的Flatten层代码
Jun 16 Python
Python find()、rfind()方法及作用
Dec 24 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数据过滤的方法
2013/10/30 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
2014/04/29 PHP
ThinkPHP CURD方法之page方法详解
2014/06/18 PHP
ThinkPHP惯例配置文件详解
2014/07/14 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
详解php框架Yaf路由重写
2017/06/20 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
JQuery Tab选项卡效果代码改进版
2010/04/01 Javascript
jquery入门—编写一个导航条(可伸缩)
2013/01/07 Javascript
jquery实现div阴影效果示例代码
2013/09/16 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
2014/08/16 Javascript
简单实现js无缝滚动效果
2017/02/05 Javascript
使用JS代码实现俄罗斯方块游戏
2018/08/03 Javascript
vue 的点击事件获取当前点击的元素方法
2018/09/15 Javascript
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
2018/12/11 jQuery
Vue 列表上下过渡效果的实例代码
2019/06/25 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
Vue 自适应高度表格的实现方法
2020/05/13 Javascript
[09:13]2014DOTA2国际邀请赛 中国区预选赛coser表演
2014/05/23 DOTA
Python中获取对象信息的方法
2015/04/27 Python
Python文件及目录操作实例详解
2015/06/04 Python
python使用pymysql实现操作mysql
2016/09/13 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
2018/01/02 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
2019/12/18 Python
如何基于pythonnet调用halcon脚本
2020/01/20 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
scrapy结合selenium解析动态页面的实现
2020/09/28 Python
Lombok插件安装(IDEA)及配置jar包使用详解
2020/11/04 Python
意大利火车票和铁路通行证专家:ItaliaRail
2019/01/22 全球购物
央视元宵晚会主持串词
2014/03/25 职场文书
爱心捐款倡议书
2014/04/14 职场文书
合作经营协议书
2014/04/17 职场文书
篮球赛口号
2014/06/18 职场文书
科学发展观活动总结
2014/08/28 职场文书
python 如何在list中找Topk的数值和索引
2021/05/20 Python