当前位置:首页 » 编程语言 » python的静态方法

python的静态方法

发布时间: 2023-06-08 12:19:07

‘壹’ 求助python高手,Python里有静态方法和私有方法,这两者有什么区别呢

静态方法不能访问实例的属性,私有访问只能在类的内部访问,不能被实例访问,详细看代码:

classPerson:
age=0
wegiht=0
__sex=''
def__init__(self):
pass
@staticmethod
defget_stactic_age():
Person.age+=1#这里不能用self.age访问
def__add(self):
print("这是一个私有方法,只能在类中使用")
defget_weight(self):
print("这是一个公有方法,可以被类的实例使用")
tom=Person()
tom.get_weight()#这个可以正常访问
tom.__add()#这个不能正常访问,报AttributeError:'Person'objecthasnoattribute'__add'异常

‘贰’ python里面的静态方法是不是不能递归

在类里面定义的函数就是方法,类方法需要@ classmethod 修饰并且有个隐藏参数 cls,实例方法必须有个参数 self, 静态方法必须有 @staticmethod修饰,类和实例都可以访问静态方法,实例可以访问实例方法也可以访问类方法
类可以访问类方法也可以访问实例方法,访问实例方法必须要带参数 self, 可以理解为类其实也是一个实例,类访问实例方法不带参数会报错的.类本身可以访问函数,实例却不行.

‘叁’ python中静态方法和类方法的区别

Python的类就是个语法糖。一个函数写在类里面和写在类外面没有区别,唯一的区别就是参数,所谓实例方法就是第一个参数是self,所谓类方法就是第一个参数是class,而静态方法不需要额外的参数,所以必须区分。

‘肆’ python类方法和静态方法有什么用

主要特点就是需要绑定到一个对象上,python解析器会自动把实例自身传递给方法,如14行所示,而直接使用InstanceMethod.f1()调用方法是不行的。

class InstanceMethod(object):
def __init__(self, a):
self.a = a
def f1(self):
print 'This is {0}.'.format(self)
def f2(self, a):
print 'Value:{0}'.format(a)
if __name__ == '__main__':
# im = InstanceMethod()
im = InstanceMethod('233')
im.f1()
# im.f2()
im.f2(233)

‘伍’ python 为什么要使用静态方法

Python使用静态方法类似函数工具使用,一般尽量少用静态方法。
Python的静态方法和类成员方法都可以被类或实例访问,两者概念不容易理清,但还是有区别的:
1)静态方法无需传入self参数,类成员方法需传入代表本类的cls参数;
2)从第1条,静态方法是无法访问实例变量的,而类成员方法也同样无法访问实例变量,但可以访问类变量;
3)静态方法有点像函数工具库的作用,而类成员方法则更接近类似Java面向对象概念中的静态方法。

热点内容
python集合运算符 发布:2025-02-14 03:06:18 浏览:205
pic编译软件 发布:2025-02-14 03:01:04 浏览:983
反编译在编译 发布:2025-02-14 02:55:36 浏览:417
python打印对象 发布:2025-02-14 02:51:20 浏览:572
QRM算法 发布:2025-02-14 02:45:19 浏览:265
c语言打印结构体 发布:2025-02-14 02:42:28 浏览:140
编译技术实验一 发布:2025-02-14 02:28:24 浏览:647
编程手机入门 发布:2025-02-14 02:27:40 浏览:733
局域网视频android 发布:2025-02-14 02:23:56 浏览:423
麒麟系统如何安装安卓程序 发布:2025-02-14 02:07:21 浏览:399