理解Python代码中的类方法
我对Python知之甚少。但我试图用一个小Python脚本在提取、转换和加载(ETL)中实现一些东西。我得到了想要的结果,但仍然想理解这个脚本理解Python代码中的类方法,python,Python,我对Python知之甚少。但我试图用一个小Python脚本在提取、转换和加载(ETL)中实现一些东西。我得到了想要的结果,但仍然想理解这个脚本 from bs4 import BeautifulSoup import urllib import re import string import csv urlHandle = urllib.urlopen("http://finance.yahoo.com/q/cp?s=^DJI") html = urlHandle.read() soup = B
from bs4 import BeautifulSoup
import urllib
import re
import string
import csv
urlHandle = urllib.urlopen("http://finance.yahoo.com/q/cp?s=^DJI")
html = urlHandle.read()
soup = BeautifulSoup(html)
table = soup.find('table', attrs = {
'id': 'yfncsumtab'
})
rows = table.findAll('tr')
a = ''
csvfile = open("F:/data/yahoofinance.csv", 'w')
for tr in rows[5: ]:
for td in tr.find_all('td', attrs = {
'class': 'yfnc_tabledata1'
}):
a += '"' + td.get_text() + '",'
a += '\n'
csvfile.write(a)
a = '
我的问题在这段代码中,soup
是从BeautifulSoup(html)
函数返回的对象。我说得对吗?所以在下一个语句中,我猜table
也是一个对象,这意味着我们正在使用find
函数在soup
对象中搜索一个值,并且它正在返回一个对象
请更正我的信息,我已在上述代码中了解自己
urlHandle
是一个类,urllib
是什么?而urlopen
是一种静态方法html
是一个对象,urlhandle
是一个类,read
是一个方法soup
是一个对象,BeautifulSoup(html)
是一个函数urlHandle
是一个对象,urllib
是一个模块,urlopen
是一个
作用html
是一个对象,read
是一个方法soup
是一个对象,BeatifulSoup(html)
是beautifulsop
对象的构造函数urlHandle
是一个对象,urllib
是一个模块,urlopen
是一个
作用html
是一个对象,read
是一个方法soup
是一个对象,BeatifulSoup(html)
是beautifulsop
对象的构造函数这可能会很混乱,但一般来说,您可以记住,CamelCase名称是类,这使得CamelCase()成为构造函数。您导入的是一个模块,它可以包含类和/或函数。从技术上讲,我认为理解Python中的一切都是对象是很重要的。所以,类是对象,函数是对象,一切都是对象 也就是说,我们在那之后进行区分,例如“函数”、“类”等
尤其是urllib,我们称之为对象。从技术上讲,我认为理解Python中的一切都是对象是很重要的。所以,类是对象,函数是对象,一切都是对象 也就是说,我们在那之后进行区分,例如“函数”、“类”等 特别是urllib,我们称之为
soup
是BeautifulSoup
的一个实例urlHandle
也是一个实例,urllib
是一个模块,urlopen
是属于此模块的函数html
是对象,read
是执行的方法type()
函数自己找到它们
soup
是BeautifulSoup
的一个实例urlHandle
也是一个实例,urllib
是一个模块,urlopen
是属于此模块的函数html
是对象,read
是执行的方法有一种方法可以使用
type()
函数自己找到它们。在Python中,基本上一切都是对象!
当您使用import
时,您包括了一个特定的模块,如urllib
类似于soup=beautifulsop(html)
的东西意味着您创建了一个类beautifulsop模块的实例(也是一个对象),您可以通过传递html对象来初始化/构造该实例
然后类似于
soup.find(…
是使用类的实例来执行特定任务的函数。在本例中,获取第一个属性id为值“yfncsumtab”的HTML表。它返回一个Beautifult标记/obj。在Python中,基本上一切都是一个对象!
当您使用import
时,您包括了一个特定的模块,如urllib
类似于soup=beautifulsop(html)
的东西意味着您创建了一个类beautifulsop模块的实例(也是一个对象),您可以通过传递html对象来初始化/构造该实例
然后类似于
soup.find(…
是使用类的实例来执行特定任务的函数。在本例中,获取第一个属性id为“yfncsumtab”的HTML表。它返回一个漂亮的标签/obj。Jesse Bakker,谢谢!!还有一个问题,table=soup.find('table',attrs={'id':'yfncsumtab')。在对象中有表吗?如果是,它是在soup对象中使用find函数查找时创建的吗?是的,soup.find找到表,然后创建一个包装html的对象。Jesse Bakker,谢谢!!还有一个问题,table=soup.find('table',attrs={'id':'yfncsumtab'中发生了什么.这里是对象中的表吗?如果是,那么它是在使用soup对象中的find函数查找时创建的吗?是的,soup.find查找表,然后创建一个包装html的对象。