python对象判断
㈠ python 如何区分对象和函数
函数就是一个callable的对象,所有对象只要你实现了它的call方法就跟函数一样
㈡ Python内部是如何判断一个对象是True还是False
作者:gao xinge
链接:https://www.hu.com/question/53708403/answer/139331035
来源:知乎
着作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
内建函数boolpython中的所有对象都可以用内建函数bool来判断布尔值是True还是False,如下>>> bool(1)
True
>>> bool(0)
False
>>> bool(True)
True
>>> bool(False)
False
>>> def f(a):
return a
>>> bool(f)
True
>>> bool(__builtins__)
True
>>> import collections
>>> bool(collections)
True
__nonzero__函数和__len__函数内建函数bool的逻辑顺序: 如果对象没有实现__nonzero__函数或者__len__函数,返回True; 如果对象实现了__nonzero__函数,根据__nonzero__函数的返回值判断; 如果对象没有实现__nonzero__函数,但实现了__len__函数,根据__len__函数的返回值判断如下>>> # example one
>>> class f:
def __init__(self, a, b):
self.a = a
self.b = b
>>> t = f(0,1)
>>> bool(t)
True
>>> # example two
>>> class f:
def __init__(self, a, b):
self.a = a
self.b = b
def __nonzero__(self):
return self.a
def __len__(self):
return self.b
>>> t = f(0,1)
>>> bool(t)
False
>>> # example three
>>> class f:
def __init__(self, a, b):
self.a = a
self.b = b
def __len__(self):
return self.b
>>> t = f(1,0)
>>> bool(t)
False
㈢ python里怎么样判断文件名和文件实例对象
python是一个动态类型的语言,这意味着任何一个给出的变量会随着不同的场合是不同的类型,比如下面的例子中的变量,可以是整数、浮点数、或者字符串类型:
def function(value):
print(value)
function(1)
function(1.0)
function("one")
这时可以使用type()函数来检查变量的类型,如下面的例子:
# File: builtin-type-example-1.py
def mp(value):
print(type(value), value)
mp(1)
mp(1.0)
mp("one")
输出结果如下:
==== RESTART: D:/work/csdn/python_Game1/example/builtin-type-example-1.py ====
<class 'int'> 1
<class 'float'> 1.0
<class 'str'> one
>>>
因此可以使用type()函数来判断一个变量是什么类型,这里就可以用来判断变量是字符串类型,还是文件对象,如下:
# File: builtin-type-example-2.py
def load(file):
if isinstance(file, type("")):
file = open(file, "rb")
return file.read()
print(len(load("builtin-type-example-2.py")), "bytes")
print(len(load(open("builtin-type-example-2.py", "rb"))), "bytes")
输出结果如下:
==== RESTART: D:/work/csdn/python_Game1/example/builtin-type-example-2.py ====
273 bytes
273 bytes
>>>
在这一行代码:
isinstance(file, type(""))
判断是否为字符串变量。
㈣ python中如何判断一个对象是某个类型的数组
可以使用 Python Image Library 做,load() 函数会返回一个对象,这个对象我们可以把它当作一个二维数组对待,而数组中存放的就是点的 RGB 值,可以很容易地访问到任何像素点的 RGB 值:
from PIL import Image
# 可以支持很多种图片格式.
im = Image.open("your_picture.jpg")
pix = im.load()
# 获得图片的尺度,可以用于迭代
print im.size
# 获得某个像素点的 RGB 值,像素点坐标由 [x, y] 指定
print pix[x,y]
# 设置 [x, y] 点的 RGB 的值为 value
pix[x,y] = value
㈤ python中如何判断一个对象是否一个类的实例
可以用 isinstance(s, myclass)来判断
如果是s是mycalss的实例,返回True,否则返回False
㈥ python怎么判断一个对象的属性
方法一:通过异常捕捉来实现逻辑
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class FooClass:
pass
k = FooClass()
try:
#do some thing you need
print k.att
except AttributeError as e:
#error: has not attribute
pass
方法二:调用hasattr方法
hasattr(object, name)
说明:判断对象object是否包含名为name的特性(hasattr是通过调用getattr(ojbect, name)是否抛出异常来实现的)。
参数object:对象。
参数name:特性名称。
>>> hasattr(list, 'append')
True
>>> hasattr(list, 'add')
False
方法三:使用dir方法
objlist = dir(k)
if 'att' in objlist:
#do some thing you need
print k.att
else:
#error: has not attribute
pass
㈦ 如何判断python对象是否存在
通过异常捕捉来实现逻辑
class FooClass:
pass
k = FooClass()
try:
#do some thing you need
print k.att
except AttributeError as e:
#error: has not attribute
pass
㈧ 关于python 如何对返回对象进行判断
例子:
response=requests.get(url,headers=headers)
成功的话会返回一个响应对象:<class 'requests.models.Response'>
㈨ 怎么判断 Python 对象是否包含某个属性
方法一:通过异常捕捉来实现逻辑
class FooClass:passk = FooClass()try: #do some thing you need
print k.attexcept AttributeError as e: #error: has not attribute
pass
方法二:调用hasattr方法
hasattr(object, name)
说明:判断对象object是否包含名为name的特性(hasattr是通过调用getattr(ojbect, name)是否抛出异常来实现的)。
参数object:对象。
参数name:特性名称。
>>> hasattr(list, 'append')
True>>> hasattr(list, 'add')
False
方法三:使用dir方法
objlist = dir(k)if 'att' in objlist: #do some thing you need
print k.attelse: #error: has not attribute
pass
另外, 这种问题可以使用google搜索下,善用google
㈩ python判断变量是不是对象
在python中变量可以理解为是一个对象的引用,既变量不是对象.