python没有char类型,python不支持char吗

  python没有char类型,python不支持char吗

  大蟒没有茶类型,一个字符也是字符串。

  为什么在计算机编程语言中没有专门的茶数据类型呢?

  简单胜于复杂。在计算机编程语言中,字符串中的每个字符占的空间大小是8位。导入系统

  sys.getsizeof( )

  37

  sys.getsizeof(a )

  38

  可以看到,空字符占用37个字节,长度为一的字符串一个占内存38个字节。多了一个字符a之后多了一个字节。

  在计算机编程语言内部,字符串是这样实现的数据类型说明结构{

  PyObject_VAR_HEAD

  长ob _ shash

  内部状态

  char ob _ sval[1];

  #zs#不变量:

  * ob_sval包含用于" ob_size 1 "元素的空间。

  * ob_sval[ob_size]==0 .

  * ob_shash是字符串的散列,如果尚未计算,则为-1。

  * ob_sstate!=0当且仅当字符串对象在stringobject.c中

  *"实习"字典;在这种情况下,两个参考

  * ob _ ref计数中*不计算*从被拘留到该对象的值。

  #fzs#

  } PyStringObject

  每个茶就是存在ob_sval里面的,占大小8位。余下的36个字节主要来自于宏PyObject_VAR_HEAD .实际上大蟒的线实现还用到了一个叫*被拘留的全局变量,里面可以存长度为0 或一的字符串,也就是char,可以节省空间并且加快速度. zs#这个字典保存所有的内部字符串。注意,对

  这个字典中的字符串*不*计入字符串的ob_refcnt .

  当被拘留的字符串达到参考为0时,字符串解除分配

  函数将从该字典中删除引用。

  从另一个角度来看,实际引用

  字符串的计数为:s-ob_refcnt (s-ob_sstate?2:0)

  #fzs#

  静态PyObject *已拘留

  实际上在大蟒里既没有指针也没有裸露的数据结构(非对象), 连最简单的整数整数都是这样实现的数据类型说明结构{

  PyObject _ HEAD

  长ob _ ival

  } PyIntObject

  总而言之,这样的设计满足大蟒的一切都是对象, 一切都尽可能"简单"的设计思想。

  相关教程推荐:Python视频教程

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: