Python脚本编程:标准类型运算符和内建函数


1.标准类型运算符:

  (1)对象值的比较

  (2)对象身份的比较:

          例1.如:foo1 = foo2 = 4.3    表示foo1和foo2指向相同的对象.(这条语句等同于 foo1 = 4.3  foo2 = foo1)  因为python是通过传递引用来处理对象的.

          例2.foo1 = 4.3              第一个数值对象被创建,然后赋值给foo1,


                  foo2 = 1 + 3.3      第二个对象被创建,并赋值给foo2.

尽管两个对象保存的是同样大小的值,但是系统保存的是两个独立的对象,foo1引用对象1,而foo2 是对另一个对象的引用.

注:每个对象都天生具有一个计数器,记录它自己的引用次数。这个数目表示有多少个变量指向该对象。可以用 is和 is not运算符来判断两个变量是否指向同一个对象.

    a is b 等价于id(a) == id (b)      ------------a,b是同一个对象.

    (3).Python会缓存整数对象:(-1,100)这个范围可能改变.

        >>> a = 1
        >>> id(a)
        144207208
        >>> b = 1
        >>> id(b)
        144207208                                        可以看出1被缓存了,地址不变


        >>> c = 1.0
        >>> id(c)
        144243140
        >>> d = 1.0
        >>> id(d)
        144243124                                      1.0没有被缓存.
2.内建函数:

(1)type() 接受一个对象做为参数,并返回它的类型---------type()返回任意Python对象的类型,而不局限于标准类型.


(2)cmp()用于比较两个对象obj1 和obj2, 如果obj1 小于obj2, 则返回一个负整数,如果obj1 大于obj2 则返回一个正整数, 如果obj1 等于obj2, 则返回0。


(3)内建函数 str() 和 repr() 或反引号运算符(``) 可以方便的以字符串的方式获取对象的内容、类型、数值属性等信息。

    通常情况下:obj = eval(repr(obj))

(4)isinstance()用法例子:

#!/usr/bin/env python 
 
def displayNumType(num): 
    print num, 'is', 
    if isinstance(num, (int, long, float, complex)): 
        print 'a number of type:', type(num).__name__ 
    else: 
        print 'not a number at all!!' 
 
displayNumType(-69) 
displayNumType(9999999999999999999L) 
displayNumType(98.6) 
displayNumType(-5.2+1.9j) 
displayNumType('xxx') 

  • 1
  • 2
  • 下一页

相关内容