面向对象

Posted Joseph Peng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象相关的知识,希望对你有一定的参考价值。

摘自:http://www.cnblogs.com/Eva-J/articles/7293890.html

python中一切皆为对象,类型的本质就是类,所以,不管你信不信,你已经使用了很长时间的类了

>>> dict #类型dict就是类dict
<class \'dict\'>
>>> d=dict(name=\'eva\') #实例化
>>> d.pop(\'name\') #向d发一条消息,执行d的方法pop
\'eva\'

从上面的例子来看,字典就是一类数据结构,我一说字典你就知道是那个用{}表示,里面由k-v键值对的东西,它还具有一些增删改查的方法。但是我一说字典你能知道字典里具体存了哪些内容么?不能,所以我们说对于一个类来说,它具有相同的特征属性和方法。

而具体的{\'name\':\'eva\'}这个字典,它是一个字典,可以使用字典的所有方法,并且里面有了具体的值,它就是字典的一个对象。对象就是已经实实在在存在的某一个具体的个体。

在python中,用变量表示特征,用函数表示技能,因而具有相同特征和技能的一类事物就是‘类’,对象是则是这一类事物中具体的一个。

1 class Person:   #定义一个人类
2     role = \'person\'  #人的角色属性都是人
3     def walk(self):  #人都可以走路,也就是有一个走路方法,也叫动态属性
4         print("person is walking...")

类的两种作用:属性引用和实例化

属性的引用
1
class Person: #定义一个人类 2 role = \'person\' #人的角色属性都是人 3 def walk(self): #人都可以走路,也就是有一个走路方法 4 print("person is walking...") 5 6 print(Person.role) #查看人的role属性 7 print(Person.walk) #引用人的走路方法,注意,这里不是在调用

实例化的过程就是类——>对象的过程

原本我们只有一个Person类,在这个过程中,产生了一个egg对象,有自己具体的名字、攻击力和生命值。

语法:对象名 = 类名(参数)

egg = Person(\'egon\',10,1000)
print(egg.name)
print(egg.aggressivity)
print(egg.life_value)

 

 

 

 
 

以上是关于面向对象的主要内容,如果未能解决你的问题,请参考以下文章

面向面试编程代码片段之GC

PHP面向对象之选择工厂和更新工厂

Java中面向对象的三大特性之封装

python之路之前没搞明白4面向对象(封装)

Scala的面向对象与函数编程

Python面向对象学习之八,装饰器