研究odoo代碼的時候發現其中有一行語句讓人費解
self.rcfile = os.path.abspath(
self.config_file or opt.config or os.environ.get('ODOO_RC') or os.environ.get('OPENERP_SERVER') or rcfilepath)
or 關鍵字除了是一種邏輯運算符還是什么??
代表這幾種數值來源中的一種嗎?優先級如何確定?
帶着問題找答案
代碼
1 print(False or None or 'hello' or 'hello world' or False or 'gill' or 'gorot' or None)
程序輸出:
C:\Python\Python35\python.exe C:/Users/hello/PycharmProjects/LearnPy/base.py
hello
Process finished with exit code 0
結論:
or操作符在此種情形下表示的語義是找到第一個非空/非邏輯非的對象,應該不光適用於字符串類型