zoukankan      html  css  js  c++  java
  • [Python] 动态类型的实现

    大多数编译型语言,变量在使用前必须先声明,其中的 C 语言更加苛刻:变量声明必须位于代码块最开始,且在任何其他语句之前。其它语言,像C++和Java,允许“随时随地”声明变量,比如,变量声明可以在代码块的中间,不过仍然必须在变量被使用前声明变量的名字和类型。

    在Python 中,无需此类显式变量声明语句,变量在第一次被赋值时自动声明,Python 中不但变量名无需事先声明,而且也无需类型声明。Python 语言中,对象的类型和内存占用都是运行时确定的。尽管代码被编译成字节码,Python 仍然是一种解释型语言。在创建--也就是赋值时,解释器会根据语法和右侧的操作数来决定新对象的类型。在对象创建后,一个该对象的引用会被赋值给左侧的变量。


    a = 3
    print a
    3
    a = 'abc'
    print a
    abc


    垃圾收集器

    从上面可以看出,变量时引用,对象存储在内存中,一个对象可能有0个或多个变量引用它,但没有变量引用该对象时,该对象无法访问,垃圾收集器就可以在适当的时候回收该对象,以释放内存。Python的垃圾收集器和Java的很类似。

  • 相关阅读:
    hdu2138(求素数)
    hdu2104
    poj1664(放苹果)
    数塔问题给你有哪些启示?
    汉诺塔问题(1)
    算法的力量(转李开复)
    最长子序列问题之系列一
    forward和redirect的区别
    group by 和having
    java中的多态三要素是什么?
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3072123.html
Copyright © 2011-2022 走看看