• Python中的对象和动态性 [菜鸟的理解,高手莫入]


    当我们谈到python时常常会说python中一切都是对象,字符串是对象,整数型是对象,标准库中的对象当然也是对象,class本身也是对象,类型(type)也是对象。

    但是初学的时候会错误地认为,既然大家都是对象,那么应该都是一样的“众生平等”啦。非也非也,尽管都是对象,每个对象支持的方法和属性还是很不一样的啦。

    就拿int和自定义的类型来说吧。

    image

    int型是python语言的原始类型,上图中所见的就是它所支持的所有操作,如加减乘除,移位,取反等等。

    除了面向对象这个特点,Python的另一个特点是它是一种动态语言。好吧,亲,我们来给int对象加上一个自定义属性,何如?

    image

    肿么啦,看起来不灵啊。好吧,我们自己建个类型来试试看。

    image

    自定义类型Object是个空类型,是一穷二白的状态。没关系,我们来整整。

    image

    现在obj已经加上了一个叫做name的属性,再来加上方法吧。

    image

    我选择了给类Object加上方法,当然如果你喜欢也可以只给obj实例添加一个方法。方法echo没有做什么石破天惊的事情,

    仅仅输出了自己的名字。

    一个Object显得有些孤单,我们给他制造个兄弟吧,然后让他兄弟也echo一把。

    image

    呀,肿么回事?哦,这个兄弟没有name属性啊,因为之前我们仅仅给他哥哥取了名字。来,接着整。

    给类型Object加上name属性,然后看看obj2和obj。

    image

    结果如上,一切尽在掌握之中,嘿嘿。通过上面的例子,你应该懂了Python的动态性了(部分而已)。是吧,元芳?!

    If you love him, teach him C++, for it's heaven;
    If you hate him, teach him C++, for it's hell
  • 相关阅读:
    使用offerShow小程序查询程序员薪水
    StoryBoard中使用segue传值
    在Xcode11中添加launchImage
    OC之打乱对象数组
    HDU Today
    洛谷:P1048 采药
    洛谷:P1928 外星密码
    洛谷:P1757 通天之分组背包
    洛谷:P1115 最大子段和
    洛谷:P1104 生日
  • 原文地址:https://www.cnblogs.com/brucejia/p/3082112.html
Copyright © 2020-2023  润新知