我不了解程序中“ 和”和“ 或”语句的工作情况。帮助我了解其正常工作。
class A:
def __init__(self,a):
self.a=a
def show(self):
print(self.a)
class B(A):
def __init__(self,b):
self.a=b
def __str__(self):
return "({0})".format(self.a)
def __add__(self,other):
return self.a+other.a
E=B("Tony")
R=B("Stark")
print(E or R)
print(E and R)
print(E+R)
答案 0 :(得分:0)
您的类实质上代表字符串Code Generation
和Tony
。
对于或运算符,将评估第一个值,如果其值为True,则将其打印出来,否则我们将移至第二个值并对其进行评估并打印
在下面的示例中,第一个字符串的计算结果为True,因为Stark
的计算结果始终为True
bool(string)
但是如果您有In [15]: bool('Tony')
Out[15]: True
In [17]: bool('Stark')
Out[17]: True
In [12]: 'Tony' or 'Stark'
Out[12]: 'Tony'
In [14]: 'Stark' or 'Tony'
Out[14]: 'Stark'
的评估结果为False,我们将看到不同的结果。
None
对于和运算符,仅当两个值均为true时,该值才被评估为true并选择第二个值
In [23]: bool(None)
Out[23]: False
In [21]: 'Stark' or None
Out[21]: 'Stark'
In [22]: 'Tony' or None
Out[22]: 'Tony'
In [18]: None or 'Tony'
Out[18]: 'Tony'
In [20]: None or 'Stark'
Out[20]: 'Stark'
但是如果其中之一评估为False,则不会显示任何值。
In [24]: 'Tony' and 'Stark'
Out[24]: 'Stark'
In [25]: 'Stark' and 'Tony'
Out[25]: 'Tony'