码迷,mamicode.com
首页 > 编程语言 > 详细

python 对象和类

时间:2016-06-05 16:56:00      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

对象:

在python中所有数据都是以对象的形式存在,即‘一切事物皆对象’,对象既包含了数据,也包含了代码。

类:

在Python中有很多用来创建其他标准数据类型的类,例如列表、字典等。如果想在Python中创建属于自己的对象。必须用关键字class来定义一个类。例如

class person():
    def __init__(self,name):
    self.name = name
    print(‘%s ‘ % self.name)
n1 = person(‘sunlieqi‘)

上面的代码做了以下的工作:

  • 查看 person类的定义
  • 在内存中创建了一个新的对象;
  • 调用兑现的__init__方法,将这个新创建的对象作为self传入,并将另一个参数(‘sunlieqi’)当作name传入
  • 返回这个新的对象
  • 刚传入的对象写在了内存中,可以直接进行读写打印

类有三个特性

(1)封装

 

class Foo:
 
    def __init__(self, name, age):
        self.name = name
        self.age = age
 
obj1 = Foo(‘sunlieqi‘, 18)
print obj1.name  
print obj1.age     
 
obj2 = Foo(‘slq‘, 73)
print obj2.name   
print obj2.age 

  

 self 是一个形式参数,当执行 obj1 = Foo(‘sunlieqi‘, 18 ) 时,self 等于 obj1

                              当执行 obj2 = Foo(‘slq‘, 78 ) 时,self 等于 obj2

对于面向对象的封装来说,其实就是使用构造方法将内容封装到 对象 中,然后通过对象直接或者self间接获取被封装的内容。

(2)继承

从已经有存在的类中衍生出新的类,添加或者修改部分功能

class cat:
    def 吃():
        pass    
    def 喝():
        pass
    def 拉():
        pass
    def 撒():
        pass
    def 叫():
        print(‘miao’)


class dog:
    def 吃():
        pass
    def 喝():
        pass
    def 拉():
        pass
    def 撒():
        pass
    def 叫():
        print(‘wang‘)

 在上面知道 猫狗除了叫不一样 都执行的一样的方法 即 吃喝拉撒

我们可以用一个大的类来包括这些

class  animal:
  def 吃():
        pass
    def 喝():
        pass
    def 拉():
        pass
    def 撒():
        pass
class cat(animal):
  def 叫():
    print(’miao‘)
class dog(animal):
  def 叫():
    print(’wang‘)

  所以,对于面向对象的继承来说,其实就是将多个类共有的方法提取到父类中,子类仅需继承父类而不必一一实现每个方法。

(3)多态

Python 用不着多态。略

 

python 对象和类

标签:

原文地址:http://www.cnblogs.com/sunlieqiblog/p/5561022.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!