Я пытаюсь понять исходный код Beautifulsoup.Как Python интерпретирует аргументы в определении класса?
Первые несколько строк исходного кода является:
class Beautifulsoup(Tag):
def __init__(self, markup="", features=None, builder=None,
parse_only=None, from_encoding=None, exclude_encodings=None,
**kwargs):
...
Существует только один аргумент называется «Tag» на первой линии, но гораздо больше в инициализации функции. С другой стороны, я знаю, что мы обычно используем BeautifulSoup в как-то так:
from bs4 import Beautifulsoup
bsobj = Beautifulsoup(text, parser)
- Что такое, что «Tag» аргумент в определении класса?
Update: Как сказал в ответ @BusyAnt @Vatine «s, Tag не аргумент, но супер класс BeautifulSoup. И я нашел определение класса Tag в другом файле:
class Tag(PageElement):
"""Represents a found HTML tag with its attributes and contents."""
def __init__(self, parser=None, builder=None, name=None, namespace=None,
prefix=None, attrs=None, parent=None, previous=None):
"Basic constructor."
И наконец PageElement также класс, определенный в том же файле:
class PageElement(object):
"""Contains the navigational information for some part of the page
(either a tag or a piece of text)"""
Whooo!
- Какой аргумент в init соответствует фактическому использованию текста и парсера?
Вы ссылаетесь на 'класс Beatifulsoup (тег)'? Или вы спрашиваете, как работают параметры функции в python? –
это то же самое, что и аргументы нормальной функции, за исключением того, что первое self относится к самому классу – YOU