Ich versuche den Quellcode von Beautifulsoup zu verstehen.Wie interpretiert Python Argumente in der Klassendefinition?
Die ersten Zeilen des Quellcodes ist:
class Beautifulsoup(Tag):
def __init__(self, markup="", features=None, builder=None,
parse_only=None, from_encoding=None, exclude_encodings=None,
**kwargs):
...
Es gibt nur ein Argument ist in der ersten Zeile als „Tag“, aber viele mehr in der init Funktion. Auf der anderen Seite, ich weiß, wir irgendwie diese Weise verwenden beautifulsoup in der Regel:
from bs4 import Beautifulsoup
bsobj = Beautifulsoup(text, parser)
- Was ist das „Tag“ Argument in der Klassendefinition?
Update: Wie gesagt in @BusyAnt @Vatine ‚s Antwort, Tag ist kein Argument, sondern die Superklasse von BeautifulSoup. Und ich fand Tag der Klassendefinition in einer anderen Datei:
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."
Und schließlich PageElement ist auch eine Klasse in der gleichen Datei definiert:
class PageElement(object):
"""Contains the navigational information for some part of the page
(either a tag or a piece of text)"""
Whooo!
- Welches Argument in der init entspricht Text und Parser in der tatsächlichen Verwendung?
Beziehen Sie sich auf 'Klasse Beatifoussoup (Tag)'? Oder fragen Sie, wie Funktionsparameter in Python funktionieren? –
ist dasselbe wie die Argumente der normalen Funktion, außer dass das erste Selbst auf die Klasse selbst verweist. – YOU