python - refrescar - implementar ajax en django
¿Cómo resolver el hardcoding cuando una versión más nueva de la biblioteca que uso usa un nombre de función diferente?-pitón (1)
¿Hay una manera mejor de resolver el problema del código compatiable de codificación rígida cuando una biblioteca que uso usa un nombre diferente de la función?
Además, no puedo cambiar el código de la biblioteca. (porque esa función que estoy usando está EN TODAS PARTES en la versión anterior del código). La biblioteca es BeautifulSoup 3 y 4. vea la sección Method Name
en http://www.crummy.com/software/BeautifulSoup/bs4/doc/
Originalmente, tengo código bs4, pero mis usuarios tienen bs3, así que tengo que poner el siguiente código en todas partes:
try:
from bs4 import BeautifulSoup as bs
except:
from BeautifulSoup import BeautifulSoup as bs
page = ''''''<html>foo bar<p>blah blah black sheep</p> bar</html>''''''
try:
p = bs(page).find_all(''p'')
except: # Imagine i have to do this all over my code that uses `find_all` or `findAll`
p = bs(page).findAll(''p'')
Puede ser que solo debes parchear mono el bs:
try:
from bs4 import BeautifulSoup as bs
except:
from BeautifulSoup import BeautifulSoup as bs
bs.find_all = getattr(bs, ''find_all'', False) or getattr(bs, ''findAll'')