Python如何解释类定义中的参数?

Python如何解释类定义中的参数?,python,beautifulsoup,Python,Beautifulsoup,我正在努力理解Beautifulsoup的源代码 其源代码的前几行是: class Beautifulsoup(Tag): def __init__(self, markup="", features=None, builder=None, parse_only=None, from_encoding=None, exclude_encodings=None, **kwargs): ... 在第一行只有一个名为“Tag”的参数,但在init函数中还有更多

我正在努力理解Beautifulsoup的源代码

其源代码的前几行是:

class Beautifulsoup(Tag):
    def __init__(self, markup="", features=None, builder=None,
    parse_only=None, from_encoding=None, exclude_encodings=None,
    **kwargs):
        ...
在第一行只有一个名为“Tag”的参数,但在init函数中还有更多参数。另一方面,我知道我们通常以某种方式使用beautifulsoup:

from bs4 import Beautifulsoup
bsobj = Beautifulsoup(text, parser)
  • 类定义中的“Tag”参数是什么
  • 更新: 正如@BusyAnt@Vatine的回答所说,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)"""
    

  • init中的哪个参数对应于实际使用中的文本和解析器
  • Tag
    Tag
    继承的类。这不是争论。请继续学习

  • 至于
    \uuuu init\uuuu
    中的参数:
    self
    引用将要创建的类的实例。其他参数是用默认值编写的,这意味着如果在调用方法时未指定,它们将采用此值。由于您在示例中指定了两个没有名称的参数,因此将使用位置顺序,即
    markers=text
    features=parser
    。这是开始了解它的一个好方法



  • 我不想听起来很苛刻,但在您不熟悉Python中的类、对象和其他一些基本概念的情况下,开始在源代码中漫游可能不是最好的主意。

    类BeautifulSoup(标记):
    的意思是“请开始定义一个名为BeautifulSoup的类,该类继承自class标记”

    def\uuu init\uuu(self,markup=”,features=None…
    表示“让类的构造函数获取参数…”,第一行是调用构造函数方法的实例(不必调用此
    self
    ,但强烈建议使用它)。其余参数的工作方式与普通函数类似


    在您显示的特定调用中,
    标记
    将获得
    文本
    的值和
    特性
    解析器的值(您没有使用任何关键字,因此它们将是位置性的,其中大多数具有默认值)。

    您指的是
    类Beatifulsoup(标记)
    ?或者你是在问函数参数在python中是如何工作的?它与普通函数的参数相同,只是第一个self是指类本身。我会花一些时间阅读你推荐的材料。thx!你的思维状态很好。你可以在Internet上,甚至在这里找到很多关于这方面和其他方面的简单示例,在…上