python 中一切皆为对象

python中一切皆为对象

   其实面向对象没什么高大上的东西,只不过把我们平时对于事物的描述和动作系统的总结成了一个定义事物的方法而已。

我们平时向别人介绍一个他(她)从未见过的东西,会从外形和外貌特征来说明这个东西,比如颜色,大小等,这就对象的属性。还会介绍这个东西能做什么或者有什么用,这就是对象的方法。所以用属性和方法就可以定义一个对象。也就是说一个对象包含了各种属性和方法。

在python中使用对象属性和方法的记法为:object.attribute 或 object.method() ,Python中创建对象的第一步建立一个类(class),这个类就类似于我们区分动物和植物。动物类和植物类各有自己的特征,当我们见到一个事物时,如果它满足动物的特征,我们就说它是动物;如果它满足植物的特征,那么它就属于植物。同样的当我们在python中建立一个类时,就要说名这个类的属性有什么,方法有什么。然后再创建属于这个类的具体实例,也就是对象那么这个对象也就有了这个类的属性和方法。但具体的属性和方法根据具体对象而定。就像动物类的属性就是有耳朵,有眼睛,有皮毛,方法就是移动,进食等等,具体对象比如说是兔子那就是有长长的耳朵,红色的眼睛,白色的皮毛。方法就是奔跑,进食就是吃胡萝卜。这样理解类和对象或者实例就没什么抽象的了。

__init__(): 创建类的默认属性,也称初始化

__str__() : 返回对象的字符串表达式

面向对象的程序设计的核心是对象(上帝式思维),要理解对象为何物,必须把自己当成上帝,上帝眼里世间存在的万物皆为对象,不存在的也可以创造出来。对象是特征和技能的结合,其中特征和技能分别对应对象的数据属性和方法属性。

Self关键字的用法

为了辨别此时此刻正在处理哪个对象,self指针变量指向当前时刻正在处理的对象,即构造出来的对象 在构造方法中self代表的是:self指针变量指向当前时刻正在创建的对象

构造函数中self.name = name 的含义:将局部变量name的数值发送给当前时刻正在创建的对象中的name成员 .

还有一种理解:self是一个形参,这个形参是引用类中的属性的,是类中独有的

面向对象的编程---object oriented programming,简称:OOP,是一种编程的思想。OOP把对象当成一个程序的基本单元,一个对象包含了数据和操作数据的函数。面向对象的出现极大的提高了编程的效率,使其编程的重用性增高。面向对象的编程---object oriented programming,简称:OOP,是一种编程的思想。OOP把对象当成一个程序的基本单元,一个对象包含了数据和操作数据的函数。面向对象的出现极大的提高了编程的效率,使其编程的重用性增高。

2.

class Person(object):    

    def __init__(self,name):   #——————>初始化函数

   self.name = name

        print "------>create:",name

    def say_name(self)

print "my name is %s" %self.name

p1 = Person("gf1")   # --------->类的实例化

p2 = Person("gf2")

p1.say_name()

p2.say_name()

输出结果:

1 ------>create: gf1

2 ------>create: gf2

3 my name is gf1

4 my name is gf2

以上程序是类的一个基本写法,理解如下

  1、person就是一个类,在这个类中是很多的方法集合。例如类中包含sayname等,还可以按照程序要求灵活添加各种类的方法。

2、类中self其实就是类的对象,是一个具体的实例。多种的实例通过类中的self表现出来。

  3、程序中的p1、p2是具体的实例,实体。(学名叫:对象。)。一个对象就是一个实体。实体通过调用属性、方法在类中体现相应的功能。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 14,052评论 6 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,641评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,192评论 19 139
  • 2.5 面向对象编程 来源:2.5 Object-Oriented Programming 译者:飞龙 协议:...
    布客飞龙阅读 4,185评论 0 34
  • (1)==比较,它会自动转换数据类型再比较(2)===比较,它不会自动转换数据类型,如果数据类型不一致,返回fal...
    json_jie阅读 1,166评论 0 0

友情链接更多精彩内容