Python如何解释类定义中的参数?
我正在努力理解Beautifulsoup的源代码 其源代码的前几行是: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函数中还有更多
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)
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)"""
哇
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上,甚至在这里找到很多关于这方面和其他方面的简单示例,在…上