python的静态函数 python函数静态变量

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进阶-静态方法(@staticmethod)

@staticmethod 静态方法只是名义上归属类管理,但是 不能使用类变量和实例变量,是类的工具包

放在函数前(该函数不传入self或者cls),所以不能访问类属性和实例属性

python 为什么要使用静态方法

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

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

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

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

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

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

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

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

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

二、使用的区别:

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


网站标题:python的静态函数 python函数静态变量
标题URL:http://pwwzsj.com/article/hidjio.html