Python | [1]

‘and’、‘or’和‘not’的优先级

‘and’、‘or’和‘not’的优先级是not>and>or

其次,逻辑操作符and 和or 也称作短路操作符(short-circuitlogic)或者惰性求值(lazy evaluation):它们的参数从左向右解析,一旦结果可以确定就停止。例如,如果A 和C 为真而B 为假, A and B and C 不会解析C 。作用于一个普通的非逻辑值时,短路操作符的返回值通常是最后一个变量。因此,逻辑运算符的理解也与C语言中不同。举个例子:

3 and 4 >> 4

4 and 3 >> 3

在以上例子中,按照C语言对的思维,3 and 4即3与4为3,但是由于是短路操作符,结果为4,是因为and运算符必须所有的运算数都是true才会把所有的运算数都解析,并且返回最后一个变量,即为4;改变一下顺序4 and 3 ,结果也不一样,即为3.
而或逻辑(or),即只要有一个是true,即停止解析运算数,返回最近为true的变量,即 3 or 4,值为3;改变顺序4 or 3 即为4.

作者:云水禅心_心一
来源:CSDN
原文:https://blog.csdn.net/lqzdreamer/article/details/77171255
版权声明:本文为博主原创文章,转载请附上博文链接!

Python getattr() 函数

getattr 语法:

getattr(object, name[, default])

object -- 对象。
name -- 字符串,对象属性。
default -- 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。
返回对象属性值。

>>>class A(object):
...     bar = 1
... 
>>> a = A()
>>> getattr(a, 'bar')        # 获取属性 bar 值
1
>>> getattr(a, 'bar2')       # 属性 bar2 不存在,触发异常
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'A' object has no attribute 'bar2'
>>> getattr(a, 'bar2', 3)    # 属性 bar2 不存在,但设置了默认值
3
>>>

Python hasattr() 函数

描述

hasattr() 函数用于判断对象是否包含对应的属性。

语法

hasattr 语法:

hasattr(object, name)

参数

object -- 对象。
name -- 字符串,属性名。
返回值
如果对象有该属性返回 True,否则返回 False。

实例

以下实例展示了 hasattr 的使用方法:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
class Coordinate:
    x = 10
    y = -5
    z = 0
 
point1 = Coordinate() 
print(hasattr(point1, 'x'))
print(hasattr(point1, 'y'))
print(hasattr(point1, 'z'))
print(hasattr(point1, 'no'))  # 没有该属性

输出结果:

True
True
True
False
posted @ 2019-05-31 10:13  Zachary'  阅读(143)  评论(0编辑  收藏  举报