理解Python中的类对象、实例对象、属性、方法-阿里云开发者社区

开发者社区> 汪凡640> 正文

理解Python中的类对象、实例对象、属性、方法

简介: class Animal(object): # 类对象 age = 0 # 公有类属性 __like = None # 私有类属性 def __init__(self): # 魔法方法 self.
+关注继续查看
class Animal(object):  # 类对象

    age = 0  # 公有类属性
    __like = None  # 私有类属性

    def __init__(self):  # 魔法方法
        self.name = 'haha'  # 公有实例属性
        self.__sex = 'man'  # 私有实例属性

    def smile(self):  # 公有方法  self指向实例对象
        pass

    def __jump(self):  # 私有方法
        pass

    @classmethod
    def run(cls):  # 类方法  cls 指向类对象
        pass

    @staticmethod
    def msg():  # 静态方法,可以没有参数
        pass

'''
# 类对象: 
将具有相似属性和方法的对象总结抽象为类对象,可以定义相似的一些属性和方法,不同的实例对象去引用类对象的属性和方法,能减少代码的重复率。

# 类属性: 
类对象所有的属性,类对象和实例对象均可以访问,被它们共同拥有; 

# 公有类属性: 
可以在类外修改类属性,需要通过类对象引用直接修改; 
类内可以通过类方法修改类属性。 
如果通过实例对象来引用类属性,相当于实例对象在实例方法中创建了一个和类属性相同的名字,等同于局部变量实例属性,和类属性无关; 

# 私有类属性: 
类外通过类对象引用不能直接更改,只能通过实例方法调用类对象更改。

# 类方法: 
需要修饰器@classmethod,标示其为类方法,类方法的第一个参数必须为类对象,一般用cls表示,通过cls引用的必须是类属性和类方法。

# 静态方法: 
需要修饰器@staticmethod,标示其为静态方法。需要做一些功能,和类相关,但不需要类和对象参与,此时可以使用静态方法,静态方法可以不需要参数。

# 实例对象: 
通过类对象创建的实例对象

# 实例属性: 
通过方法定义的属性 

# 私有实例属性: 
__开头定义的变量名;只能通过方法调用来更改 
公有实例属性: 
可以通过实例对象重新定义

# 实例方法: 
第一个参数公认为self,可以调用类对象和实例对象。

# 私有方法: 
只能在类内调用,如果类外调用,则需要类内的公有方法调用类内的私有方法,在类外调用这个公有方法,则间接调用了私有方法。 
一个程序中最核心的内容,不能随意调用,可以设置为私有方法,通过公有方法的判断去调用私有方法!

# 公有方法: 
可以在类内类外随意调用。

# 魔法方法: 
例如__init__方法,用两个__前后包裹的方法
'''

  

                                                                   -------  知识无价,汗水有情,如需搬运请注明出处,谢谢!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Gradle的属性设置大全
Gradle作为一款项目构建工具,由于其强大、灵活、快速、完全兼容Ant等特性,越来越受到人们欢迎。Gradle的灵活有时候也会引起人们的困惑。比如在Gradle中设置变量和属性就有N种办法。由于Gradle的理念是Convention over configruation(约定优于配置),所以如果了解了这些约定,那么在使用Gradle的属性配置时一定会如鱼得水。
959 0
python3-类与对象
Python的hasattr() getattr() setattr() 函数 # hasattr(object, name) # 判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False。
815 0
构造函数与原型对象和实例对象的关系
构造函数与原型对象和实例对象的关系 //通过构造函数实例对象,并初始化 //var arr=new Array(10,20,30,40); //join是方法,实例对象调用的方法 //arr.join("|"); //console.
709 0
JVM07_ 对象的实例化、内存布局(对象头、实例数据、对齐填充)、访问定位、直接内存(一)
①. 从字节码角度看待对象的创建过程 ②. 对象的实例化(六个步骤)
6 0
+关注
汪凡640
python初高级,python web,爬虫,分布式爬虫,数据分析,数据挖掘
143
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载