01-25 126—130


81、求打印結果

arr = [1,2,3]
def bar():
	 arr+=[5]

	 bar()
print(arr)
'''
A.  error
B.  [5]
C. [1,2,3]
D. [1,2,3,5]
'''
# 答案
A

82、請給出下面代碼片段的輸出

def say_hi(func):
    def wrapper(*args, **kwargs):
        print("HI")
        ret = func(*args, **kwargs)
        print("BYE")
        return re
    return wrapper

def say_yo(func):
    def wrapper(*args, **kwargs):
        print("YO")
        return func(*args, **kwargs)
    return wrapper

@say_hi
@say_yo
def func():
    print("ROCK & ROLL")
func()

# 答案
'''
HI
YO
ROCK & ROLL
BYE
'''

83、map(str,[1,2,3,4,5,6,7,8,9]) 輸出是什么?

print(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))  # <map object at 0x101f59748>

84、請簡述標准庫中functools.wraps的作用

# 答案
'''
Python裝飾器(decorator)在實現的時候,有一些細節需要被注意。例如,被裝飾后的函數其實已經是另外一個函數了(函數名等函數屬性會發生改變)。這樣有時候會對程序造成一些不便,例如筆者想對flask框架中的一些函數添加自定義的decorator,添加后由於函數名和函數的doc發生了改變,對測試結果有一些影響。

所以,Python的functools包中提供了一個叫wraps的decorator來消除這樣的副作用。寫一個decorator的時候,最好在實現之前加上functools的wrap,它能保留原有函數的名稱和docstring。
'''

85、請給出下面代碼片段的輸出

def test():
	 try:
			raise ValueError("something wrong")
	 except ValueError as e:
	 		print("Error occurred")
	 		return
	 finally:
	 		print("Done")
	 		
test()

# 答案
Error occurred
Done


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM