鱼C论坛

 找回密码
 立即注册
查看: 2074|回复: 0

[技术交流] 34 类和对象:给大家介绍对象 - 景命

[复制链接]
发表于 2017-8-13 23:47:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 景命 于 2017-8-13 23:46 编辑

知识点:


  • 对象 = 属性(数据,静态的特征。) + 方法(函数,动态的动作。)

  • 类:类就是一个模具,一个类为它的全部对象给出了一个统一的定义,而他的每个对象则是符合这种定义的一个实体,因此类和对象的关系就是抽象和具体的关系。

  • #Python中类的名字约定以大写字开头,方法或者函数以小写字母开头。以此来区分方法和函数。



创建一个类:
class Turtle:
    """关于类的一个简单的例子"""
    #下面的是属性
    color = "green"
    weight = 10
    legs = 4
    shell = True
    mouth = "大嘴"

    #下面的是方法
    def climb(self):
        print("我正在很努力的向前爬.......")
    def run(self):
        print("我正在飞快的向前跑.......")
    def bite(self):
        print("我咬死你!")
    def eat(self):
        print("能吃东西,好幸福^_^")
    def sleep(self):
        print("困了,睡觉,晚安,Zzzz")
创建一个实例对象:
t = Turtle()                #建立一个Turtle()的类对象
t.climb()                        #调用climb()方法



OO面向对象(Object - oriented)的特征:

1.封装:将属性和方法封装到对象中,封装也是一种信息隐蔽技术,使我们的数据更加安全。
>>> a = list()                #实例化一个列表对象。
>>> a = [5,1,2,7,9,3]#将数据赋给a
>>> a.sort()                #在这里进行排序,但是我们并不能看到排序方法是如何实现的。
>>> a
[1, 2, 3, 5, 7, 9]
>>> a.append(8)        #将函数封装起来,只留给一个可以调用的名字,这就是封装。
>>> a
[1, 2, 3, 5, 7, 9, 8]


2.继承:子类自动共享父类之间数据和方法的机制。
>>> class Mylist(list):        #子类Mylist继承了父类list。
        pass                                #表示占位符,什么都不做。

>>> list2 = Mylist()                #实例化类Mylist对象list2。
>>> list2.append(5)                #类Mylist对象list2同样可以调用类list的方法。
>>> list2.append(3)
>>> list2.append(7)
>>> list2
[5, 3, 7]
>>> list2.sort()
>>> list2
[3, 5, 7]


3.多态:不同对象,对同一方法响应不同的行动。
#定义两个类,类中有同样名字的方法。
>>> class A():
        def fun(self):
                print("我是小A……")

                
>>> class B():
        def fun(self):
                print("我是小B……")

#分别实例化类对象
>>> a = A()
>>> b = B()
>>> a.fun()        #调用同样名字的方法,却有不同的返回值。
我是小A……
>>> b.fun()
我是小B……

评分

参与人数 1鱼币 +5 收起 理由
小甲鱼 + 5 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 19:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表