python判断变量类型时,为什么不推荐使用type方法

python判断变量类型时,为什么不推荐使用type方法,第1张

应该是和instance()比吧,大部分情况都通过,只不过一些特殊的情况下有区别,对于subclass之类的 type就不行了

class A:

pass

class B(A):

pass

isinstance(A(), A) # returns True

type(A()) == A # returns True

isinstance(B(), A) # returns True

type(B()) == A # returns False

用type(),就可以查他是什么类型

>>> def test(self):

     print "123"

>>> type(test)

<type 'function'>

>>> a = 123

>>> type(a)

<type 'int'>

>>> b = "123"

>>> type(b)

<type 'str'>

>>> c = 123456

>>> type(c)

<type 'float'>

>>>

如果是函数,可以用dir(该函数名),还可以显示函数的方法使用方法

1、number

即数字类型,包含int(整型)、float(浮点型)、bool、complex(复数类型)四种基本类型,可用于存储数值;

类型转换:int()、float();

数学运算:+、-、都与C语言相同,/表示做触发(结果一定为浮点数),//表示做除法,(结果只保留整数部分,去掉小数部分)% 表示做求余运算

表示做幂次方运算 (注意运算次序)

2、string

即字符串类型,字符串需要用单引号’’或双引号" "括起来 三引号–注释,字符串也是一种特殊的元组。不能改变字符串中的某个元素的值;

基础 *** 作:索引、切片、乘法-多次输出、成员资格检查、长度len()、最大值、最小值;

3、list

即列表类型,list的数据项可以是不同类型,其各个元素也可以改变,list是使用[]方括号包含各个数据项,+多个列表进行合并成一个列表列表重复输出多次in某个项是否在列表中,可对列表项进行添加、修改、删除。

4、tuple

即元组类型,tuple 是使用( )小括号包含各个数据项,tuple与list的唯一区别是tuple的元素是不能修改,而list的元素可以修改。

5、set

即集合类型,是一个无序不重复元素的序列,使用大括号{}或者set()函数创建集合,用set()创建一个空几个,使用set也可以去重。

6、dictionary

即字典类型,字典的每个元素是键值对,无序的对象集合,是可变容器模型,且可存储任意类型对象,可以通过键来引用,键必须是唯一的且键名必须是不可改变的(即键名必须为Number、String、元组三种类型的某一种),但值则不必。

变量的引用

变量和数据都是保存在内存中的

变量和数据是分开存储的

数据保存在内存中某个位置,通过地址来标记

变量保存的是数据的地址,通过地址可以找到数据在内存空间的位置

把变量保存数据地址的过程称为引用

变量的重新赋值修改的是变量中引用数据的内存地址

变量之间的赋值实际是引用的传递

函数参数的传递,本质也是引用的传递

函数的返回值本身也是引用的传递

可变和不可变类型

不可变类型,内存中的数据不允许被修改:数字类型(int,bool,float,complex,long(2,x)、字符串、元组(tuple)

可变类型,内存中的数据可以被修改:列表list、字典dict

无论是可变还是不可变数据类型,通过赋值语句,都会改变变量的引用

Hash函数只能接收不可变数据类型,字典的键也只能是不可变数据类型,字典的value值可以是任意数据类型

局部变量

1在函数内部定义的变量就是局部变量(作用范围只能是当前函数内部)

2在函数外部无法直接访问局部变量

3不同的函数中可以定义同名的局部变量

4局部变量的生命周期:从定义变量时开始,到函数运行结束

全局变量

1在所有函数外边定义的变量就是全局变量

2让所有函数都能访问到,可以作为函数通信的桥梁

3一般情况下,为了和普通变量的区别,需要加上g_或gl_前缀

4全局变量一般放在所有函数的最上面

5在函数内部修改全局变量,必须要加上global关键字,如果不加global只是定义了一个同名的局部变量

函数的多个返回值

以上就是关于python判断变量类型时,为什么不推荐使用type方法全部的内容,包括:python判断变量类型时,为什么不推荐使用type方法、python 判断变量 类型是函数吗、python语言有哪些数据类型等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9690973.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存