马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 醉酒青牛 于 2015-11-8 12:54 编辑
小牛有话说:
各位鱼油,大家好。我是小牛,如果您已经看完或者正在看鱼神的《零基础入门学习Python》视频,想随时复习前面的知识点却又不想花太多时间和精力重翻视频,来这里《零基础入门Python学习》整理瞅瞅小牛呕心做的的视频内容的总结吧^_^,如果觉得有用的话,可以点击所属淘贴右上角的“订阅”按钮,这样以后就能够随时看到小牛做的最新的整理了。
年底恰逢各种项目结题,近两周内没有时间和精力更新帖子,这里对关注小牛帖子鱼油们说声抱歉了,后面小牛会尽力加快更新速度,争取在11月份更完类和对象部分。
本期主要内容导读:
这一期我们归纳一下鱼神第三十六讲“类和对象:给大家介绍对象”。这一期里面鱼神主要是介绍了对象的概念基本知识点以及面向对象编程的特点。下面我们就来详细介绍一下各个知识点吧~~~~~~
1. 对象的基本概念
Python也是一种面向对象的编程语言,在其内部可谓是无处不对像,我们所熟知的列表list、字符串str等工厂函数本质上都是对象。对象其实是对属性和方法的封装。属性即对象的静态特征;方法及对象的动态特征,下面我们以一个小甲鱼的类来描述上述知识点:
属性:
小甲鱼身体的颜色,体重,腿的数量,是否有壳,嘴巴大小等称之为属性,用代码描述就是一系列数据;
方法:
小甲鱼如何爬,如何跑,如何咬,如何吃喝睡等称之为方法,用代码描述为一系列函数。
下面是一个具体的甲鱼对象定义和实例化过程:#定义一个类对象,在Python中类名首字母最好大写以和函数进行区分
class Turtle:
#属性定义
colour = 'green'
weight = 10
legs = 4
shell = True
mouth = 'big mouth'
#方法定义
def climb(self):
print('我正在努力地往前爬......')
def run(self):
print('我正在拼命地往前跑......')
def bite(self):
print('咬死你,咬死你......')
def eat(self):
print('吃饱了,真舒服......')
def sleep(self):
print('困了,我要睡了......')
tt = Turtle() #对象的实例化,tt即为一个甲鱼的对象
tt.climb() #对象对方法的调用
print(tt.mouth) #对象对属性的调用
2. 面向对象的基本特征
Python既然是面向对象的编程语言,自然要对其面向对象特征有所了解,主要涉及到了封装性,继承性和多态性三大特点,下面分别阐述:
封装性
对象将属性和方法进行封装,可以实现信息隐蔽化,用户仅能够使用对象的方法而不能修改这些方法和属性,例如列表是一个类对象,我们定义一个其类的对象,就可以使用其内部的方法:
>>> list1 =list() #类的实例化
>>> list1
[]
>>> list1.append(3) #类的方法调用1
>>> list1
[3]
>>> list1.extend([7,2,4,6]) #类的方法调用2
>>> list1
[3, 7, 2, 4, 6]
>>> list1.sort() #类的方法调用3
>>> list1
[2, 3, 4, 6, 7]
[/b]继承性[/b]
继承性是指可以直接使用前面已经定义好的类的所有属性和方法,如用户自定义一个类,并通过继承列表list实现列表所有方法:#定义一个类My_list,并继承列表list
class My_list(list):
pass #不做其他定义
#
list2 = My_list() #类的实例化
list2.extend([1,3,2,7,4]) #对象对方法的调用1
print(list2)
list2.sort() #对象对方法的调用2
print(list2)
多态性
对象的多态性体现在,可以允许不同的类内定义同名方法,例如:
#定义类A,里面定义了A的方法class A:
def fun(self):
print('我是小A')
#定义类B,里面定义了B的方法
class B:
def fun(self):
print('我是小B')
#定义了A的对象a
a = A()
#定义了B的对象b
b = B()
a.fun() #a调用A的方法
b.fun() #b调用B的方法
输出结果是:
我是小A
我是小B |