python静态函数 python静态函数类函数成员函数区别

python 为什么要使用静态方法

Python使用静态方法类似函数工具使用,一般尽量少用静态方法。

创新互联专业为企业提供瓜州网站建设、瓜州做网站、瓜州网站设计、瓜州网站制作等企业网站建设、网页设计与制作、瓜州企业网站模板建站服务,十余年瓜州做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

Python的静态方法和类成员方法都可以被类或实例访问,两者概念不容易理清,但还是有区别的:

1)静态方法无需传入self参数,类成员方法需传入代表本类的cls参数;

2)从第1条,静态方法是无法访问实例变量的,而类成员方法也同样无法访问实例变量,但可以访问类变量;

3)静态方法有点像函数工具库的作用,而类成员方法则更接近类似Java面向对象概念中的静态方法。

Python中静态方法和类方法的区别

一、先是在语法上面的区别:

1、静态方法不需要传入self参数,类成员方法需要传入代表本类的cls参数;

2、静态方法是无妨访问实例变量和类变量的,类成员方法无法访问实例变量但是可以访问类变量

二、使用的区别:

由于静态方法无法访问类属性,实例属性,相当于一个相对独立的方法,跟类其实并没有什么关系。这样说来,静态方法就是在类的作用域里的函数而已。

python 里面有静态函数吗

python的类里用@staticmethod的是静态方法,@classmethod的是类方法,如下

class Person(object):

person_list = []

def __init__(self, name, age):

self.name = name

self.age = age

self.person_list.append(self)

@classmethod

def one_year_later(cls):

for p in cls.person_list:

p.age += 1

@staticmethod

def born_one_boby(name):

return Person(name, 0)

def __repr__(self):

return 'Person name:%s, age:%s' % (self.name, self.age)

if __name__ == '__main__':

petter =  Person('Petter',23)

merry = Person('Merry',21)

print(petter) # Person name:Petter, age:23

print(merry)  #  Person name:Merry, age:21

Person.one_year_later()

print(petter)  #  Person name:Petter, age:24

print(merry)  #  Person name:Merry, age:22

baby = merry.born_one_boby('Tom')

print(Person.person_list) #  [Person name:Petter, age:24, Person name:Merry, age:22, Person name:Tom, age:0]


分享名称:python静态函数 python静态函数类函数成员函数区别
本文路径:http://pwwzsj.com/article/dojdsio.html