创新互联Python教程:Python staticmethod()

staticmethod()用于创建静态函数。静态方法不绑定到对象,它绑定到类。这意味着,如果对象没有绑定到静态方法,则静态方法不能修改对象的状态。

专注于为中小企业提供成都网站设计、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业尚义免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

使用staticmethod()的语法。

 **staticmethod (function)** #Where function indicates function name 

为了在类中定义静态方法,我们可以使用内置的 decorator @staticmethod。当函数用@staticmethod 修饰时,我们不传递类的实例。这意味着我们可以在类中编写一个函数,但是不能使用该类的实例。

使用@staticmethod 装饰器的语法。

 **@staticmethod
def func(args, ...)** #Where args indicates function parameters

staticmethod()参数:

只接受一个参数。参数通常是需要转换为静态的函数。我们也可以使用效用函数作为参数。

参数描述必需/可选
功能作为静态方法创建的函数的名称需要

staticmethod()返回值

它以静态方法返回给定的函数

| 投入 | 返回值 | | 功能 | 给定函数的静态方法 |

Python 中staticmethod()的示例

示例 1:使用staticmethod()创建一个静态方法

 class Mathematics:

    def Numbersadd(x, y):
        return x + y

# create Numbersadd static method
Mathematics.Numbersadd= staticmethod(Mathematics.Numbersadd)

print('The sum is:', Mathematics.Numbersadd(20, 30)) 

输出:

The sum is: 50

示例 2:继承如何与静态方法一起工作?

 class Dates:
    def __init__(self, date):
        self.date = date

    def getDate(self):
        return self.date

    @staticmethod
    def toDashDate(date):
        return date.replace("/", "-")

class DatesWithSlashes(Dates):
    def getDate(self):
        return Dates.toDashDate(self.date)

date = Dates("20-04-2021")
dateFromDB = DatesWithSlashes("20/04/2021")

if(date.getDate() == dateFromDB.getDate()):
    print("Equal")
else:
    print("Unequal") 

输出:

Equal

示例 3:如何创建实用函数的静态方法?

 class Dates:
    def __init__(self, date):
        self.date = date

    def getDate(self):
        return self.date

    @staticmethod
    def toDashDate(date):
        return date.replace("/", "-")

date = Dates("12-03-2020")
dateFromDB = "12/03/2020"
dateWithDash = Dates.toDashDate(dateFromDB)

if(date.getDate() == dateWithDash):
    print("Equal")
else:
    print("Unequal") 

输出:

Equal

当前标题:创新互联Python教程:Python staticmethod()
当前网址:http://www.shufengxianlan.com/qtweb/news23/513273.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联