Python笔记(19)面向对象编程

定义一个类

类的格式:

class 类名(父类):

  类的内容

#类名后面有括号的类,称为新式类

#括号里面的内容是父类的名称;程序中,所有类的父类都是object

class Animals(object):
pass
print Animals

执行结果:

类的数据属性

# coding:utf-8
class Animals(object):
#类的数据属性
    name = 'Tom'
    age = 8

#访问类的数据属性
print Animals.name
print Animals.age

执行结果:

类的方法

# coding:utf-8
class Animals(object):
    name = "Tom"
    age = 8
    weight = 10
#类的方法=函数
#在类中定义的函数叫做方法
#类的方法中,python解释器要求第一个形参必须是self;与java中的this类似
# self实质上是类实例化后的对象本身
    def eat(self):
        print "eating......"

#类的实例化产生的就是对象; 把抽象的类创造出实际存在的事物
#p1就是实例化产生的对象
p1 = Animals()

#调用类的属性
print p1.name
# 调用类的方法
p1.eat()

执行结果:

扫描二维码关注公众号,回复: 6774864 查看本文章

面对对象的三大特征:封装、继承、多态

封装:

封装实际上是把数据封装到某个地方,以后再去调用被封装在某处的内容或者数据:

  封装数据

  调用封装数据

    通过对象直接调用

    通过self间接调用

# coding:utf-8
class Animals(object):
# 构造方法
# 当类实例化时会自动调用__init__构造方法;
# name, age, weight是必选参数,当实例化时必须要传参,否则报错;
    def __init__(self, name, age, weight):
        self.name = name
        self.age = age
        self.weight = weight
# eat方法
    def eat(self):
        print "%s eating......" %(self.name)
        self.weight += 2
# drink方法
    def drink(self):
        print "%s is drinking....." %(self.name)
        self.weight += 1

# 对象可以实例化多个;
Tom = Animals("Tom", 8, 10)
Jack = Animals("Jack", 5, 3)

# self实质上就是类的实例化对象
print '名字:%s 年龄:%d 体重:%d' %(Tom.name,Tom.age,Tom.weight)
Tom.eat()
print '目前体重:%d' %(Tom.weight)
Tom.drink()
print '目前体重:%d' %(Tom.weight)

执行结果:

练习1:

创建一个类(People),拥有的方法为砍柴、娶媳妇、回家。实例化对象,执行相应的方法

# coding:utf-8
class People(object):
    def __init__(self,name):
        self.name = name
#砍柴
    def cut(self):
        return "%s砍柴" %(self.name)
#娶媳妇
    def marry(self):
        return "%s娶媳妇" %(self.name)
#回家
    def home(self):
        return "%s回家" %(self.name)

p1 = People('p1')
p2 = People('p2')
p3 = People('p3')

print p1.cut()
print p2.marry()
print p3.home()

执行结果:

练习2:栈的数据结构

 

栈的方法:
入栈(push),出栈(pop),栈顶元素(top),栈的长度(lenght),判断栈是否为空(isempty),显示栈元素(view)
操作结果:
栈类的实例化
入栈2次
出栈1次
显示最终栈元素

 

猜你喜欢

转载自www.cnblogs.com/vaon/p/11142959.html