发布于2020-03-12 12:37 阅读(1170) 评论(0) 点赞(16) 收藏(4)
属性的介绍:
尽量把需要用户传入的属性作为实例属性,而把同类都一样的属性作为类属性。实例属性在每创造一个类是都会初始化一遍,不同的实例的实例属性可能不同,不同实例的类属性都相同
1:实例属性:
在__init__(self,…)中初始化
内部调用时都需要加上self.
外部调用时用“对象名.属性名”调用
2:类属性:
在__init__()里初始化
在内部用classname.类属性名调用
外部既可以用classname.类属性名又可以用instancename.类属性名来调用
方法的介绍
1:普通方法:
def fun_name(self,…):
pass
外部用实例调用
2:静态方法:通过装饰器 @staticmethod 装饰
不能访问实例属性
参数不能传入self
与类相关但是不依赖类与实例的方法
3:类方法:@classmethod
不能访问实例属性
参数必须传入cls
必须传入cls参数(即代表了此类对象-----区别------self代表实例对象),并且用此来调用类属性:cls.类属性名
静态方法与类方法都可以通过类或者实例来调用。其两个的特点都是不能够调用实例属性
静态方法不需要接收参数,使用类名.类属性
代码示例
class d():
d1= 111 #类属性
__d3 = 222 #私有属性 (不允许在外部调用)
def __init__(self,age):
self.age=age
def fun1(self): #普通方法
print(self.__d3)
print(self.age)
self.d2 = 222 #实例属性
@classmethod #类方法
def fun2(cls,ss):
print(cls.d1)
print(ss)
print('classmethod')
@staticmethod #静态方法
def fun3(data):
print()
print('staticmethod')
D = d(333)
#------------------------------------
#实例方法 #实例方法只能被实例化对象调用
D.fun1()
#-----------------------------------------------------
类方法 能够被类名或者实例化对象调用 (被类名调用,就能实现跳过实例化这一步)
D.fun2('类参数')
d.fun2('类参数')
类方法和静态方法 的区别: 1,定义;2参数
#-----------------------------------------------------
静态方法 能够被类名或者实例化对象调用 (被类名调用,就能实现跳过实例化这一步)
D.fun3(22)
d.fun3(33)
原文链接:https://blog.csdn.net/weixin_43983653/article/details/104795466
作者:恋爱后女盆友的变化
链接:https://www.pythonheidong.com/blog/article/254158/c3941a3dc75fbdc7786c/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!