zoukankan      html  css  js  c++  java
  • python everything is object

    python面向对象非常彻底,即使过程式的代码风格,python在运作的时候也是面向对象的。everything is object。

    差异

    在面向对象的理念上,python和非常工程化的面向对象语言(C++、Java、C#)有巨大的差异,这些语言,为了解释他们的原理,往往会祭出一大杀器-----内存模型。用单纯的、非常过称化的说明原理运行过程。(当然我并没有说这个有什么不好,这样是比较直接、简单的。)python讲到最深处,它会给你讲很多对象的故事。除非要深入解释器,如果深入解释器,那又是C++、Java、C#的事情了。那我们讲一个非常深入而简单的例子,内存对象。5是一个数字,但也是一个对象,所有的对象都要受着python环境的管理,运行python命令

    >>> id(5)
    19867920
    >>> dir(4)
    ['__abs__', '__add__', '__and__', '__class__', '__cmp__', '__coerce__', '__delattr__', '__div__', '_
    _divmod__', '__doc__', '__float__', '__floordiv__', '__format__', '__getattribute__', '__getnewargs_
    _', '__hash__', '__hex__', '__index__', '__init__', '__int__', '__invert__', '__long__', '__lshift__
    ', '__mod__', '__mul__', '__neg__', '__new__', '__nonzero__', '__oct__', '__or__', '__pos__', '__pow
    __', '__radd__', '__rand__', '__rdiv__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '
    __rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__rpow__', '__rrshift__', '__rshi
    ft__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '_
    _subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate', 'denominator', '
    imag', 'numerator', 'real']

    可以看到,python环境中数值4、5。也是是python的一个对象。具有普通对象一样的性质。差异最明显的地方,往往是我们忽视的地方。python的type也是一种对象(用type()尝试一下获取int,long,type),而int,long,str则是类型,是元数据。是语言解释不了的,而直接套用了硬件的一些理念。

    好了讲了一些python在一些旮旯里边的东西,C++11好像是一门新的语言(好老了,今天刚刚了解了一下,auto、decltype和for的引入,才是让我现在觉得最舒服的地方啊)还没开始用C++11呢。比起以前的版本差异好大啊 。。。。我好落后啊。

  • 相关阅读:
    android progressbar 水平进度条
    jquery 下拉自动加载
    jquery ajax
    input 数字,字母汉字的限制方法(转帖)
    Jquery checkbox
    js运用6
    js运用5
    js运用4
    js运用3
    js运用2
  • 原文地址:https://www.cnblogs.com/tom-zhao/p/3911385.html
Copyright © 2011-2022 走看看