首页 > 编程语言 >Python - Static Methods

Python - Static Methods

时间:2024-07-30 18:28:02浏览次数:11  
标签:Methods Python self class instance Static static method methods

Sometimes we have to write methods that are related to the class but do not need any access to instance or class data for performing their work. These methods could be some helper or utility methods that are used inside the class but they can perform their task independently. There is no need to define these methods as instance methods or class methods as they do not need access to the instance object or the class object. We can define these methods as static methods by preceding them with the @staticmethod decorator. Unlike instance methods and class methods, static methods do not have any special first parameter. They can have regular parameters, but the first parameter has no special significance. So, when a static method is called, Python does not send the class object or the instance object as the first argument. This is why these methods cannot access or modify the instance state or the class state.

In the BankAccount class we saw earlier, we can add a static method named about that can be used to display general information about the class.

class BankAccount:
    ……………………
    ……………………
    
    @staticmethod
    def about():
        print('Information about BankAccount class ……')
        print('…………')
        print('…………')

BankAccount.about()

A static method can be invoked using either the class name or an instance name.

In the following Date class, you can write a static method is_leap that can be used as helper method in other methods of the class.

class Date:
    def __init__(self, d, m, y):
        self.d = d
        self.m = m
        self.y = y

     def method1(self, year):
        ………
        if Date.isleap(year):
            ………
            ………

     def method2(self, days):
        ………
        if Date.isleap(self.y):
            ………
            ………

    @staticmethod
    def is_leap(year):
         if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
              return True
         else:
              return False

So, when you have to create a helper or utility method, that contains some logic related to the class, turn it into a static method. For example, if you are creating a Fraction class, you can create a static method for finding hcf of two numbers. This method can be used to reduce the fraction to lowest terms.

 

标签:Methods,Python,self,class,instance,Static,static,method,methods
From: https://www.cnblogs.com/zhangzhihui/p/18333128

相关文章

  • python中列表的学习
    列表目录列表列表的定义创建列表列表的索引列表的切片内置函数列表的遍历列表的常用方法(变量.方法名())列表的定义List(列表)是Python中使用最频繁的数据类型,在其他语言中通常叫做数组专门用于存储一串信息列表用[]定义,数据之间使用﹐分隔列表的索引从О开始索引就是数据在列......
  • Python 字节串转Hex字符串(一个久远的问题点总结)
    时间:2024.07.30作者:Yuan  这是一个今天看来似乎有点久远的问题,但是值得被记录和澄清一下!  那是在2022年1月份参与的一个项目中遇到的问题,大概需求是利用SHT40-AD1B-R2芯片,读取环境温度。其实就是通过i2c与这个温度传感器建立通讯,然后读取温湿度信息,对于上位机的......
  • [附开题]flask框架的汽车零件维修管理信息平台t6rr1(python+源码)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着汽车工业的快速发展和汽车保有量的持续增长,汽车零件维修管理已成为汽车后市场的重要组成部分。传统的手工记录和管理方式已难以满足现......
  • [附开题]flask框架的汽车售后管理系统2888o(python+源码)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着汽车产业的快速发展和消费者购车需求的日益增长,汽车售后服务已成为车企和经销商提升客户满意度、增强品牌忠诚度的重要环节。然而,传统......
  • [附开题]flask框架的社区服务管理系统0f6i9(python+源码)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着城市化进程的深入和居民生活水平的提高,社区服务需求日益多样化与复杂化。传统的社区服务模式已难以满足居民对于高效、便捷、个性化服......
  • [附开题]flask框架的社区服务系统ff00q(python+源码)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着社会的快速发展和居民生活水平的提高,社区作为城市的基本单元,其服务功能日益丰富和多样化。然而,传统社区服务方式在应对日益增长的居民......
  • Python基础知识笔记---保留字
    保留字,也称关键字,是指被编程语言内部定义并保留使用的标识符。一、保留字概览  二、保留字用途 1.`False`:表示布尔值假。2.`None`:表示空值或无值。3.`True`:表示布尔值真。4.`not`:布尔逻辑操作符,对条件表达式取反。5.`or`:布尔逻辑操作符,用于连接两个条件表达式......
  • 用Python写一个植物大战僵尸
    导语:哈喽,哈喽~植物大战僵尸的人气可谓是经久不衰,晃着脑袋生产阳光的向日葵,突突突⚾⚾⚾吐着子弹的豌豆射手!​行动迟缓种类丰富的僵尸……印象最深的是“僵尸吃掉了你的脑子!”还有疯狂的戴夫,无一不唤醒着我们的童年记忆​。下面用python还原你的记忆中的童年!功能实现如下:......
  • 基于Python实现的深度学习技术在水文水质领域应用
    当前,深度学习作为人工智能的热门技术发展迅速,以其强大的非线性和不确定性处理能力在图像识别、语音识别、自然语言处理等领域取得了显著的成效。它是一种端到端的处理方法,在训练算法的指导下,深层神经网络自发地从原始数据中进行抽象,提炼关键特征,对结果做出预报,中间过程不需要人......
  • 为什么 string.maketrans 在 Python 3.1 中不起作用?
    我是Python新手。怎么了这个在Python3.1中不起作用?fromstringimportmaketrans#Requiredtocallmaketransfunction.intab="aeiou"outtab="12345"trantab=maketrans(intab,outtab)str="thisisstringexample....wow!......