python的關鍵字與引數名衝突的解決方法
阿新 • • 發佈:2019-01-05
在呼叫BeautifulSoup模組中的find的函式時,由於需要指定tag中name的屬性,而與find函式的位置引數產生了衝突。
find函式原型如下:
find( name, attrs, recursive,
text, **kwargs)
而需要呼叫它的程式碼如下:
lt =
soup_login.find( "input", name = 'lt'
)
上面的程式碼是為了找到name='lt'的input標籤,然而input的name屬性和find函式原型的第一個位置引數產生了衝突,會報錯:
TypeError: select() got an unexpected keyword
argument 'name'
在BeautifulSoup的官方文件上面只講了部分與python關鍵字衝突的解決辦法,這種情況我沒找到。
不過,以上問題可以通過find函式中的attrs來解決,將以上程式碼修改如下:
lt = soup_login.find( "input",
attrs = { 'name':'lt' } )
執行後,能正確找出該input便籤。
ps:這種方法對於其他引起衝突的關鍵字也適用,直接將引起衝突的加入到attrs字典裡面即可
[email protected]
版權所有---------------------------------------------