python中类的方法引用还是参数引用

发布于 2022-09-06 10:50:47 字数 1535 浏览 31 评论 0

代码:

   def __init__(self,url):
        self.url = url
        self.log = mylog()
        self.pageSum = 5
        self.urls = self.getUrls(self.pageSum)
        self.items = self.spider(self.urls)
        self.pipelines(self.items)

构造函数是引用了 self.getUrlsself.spiderself.pipelines 三个方法?
还是引用了三个方法中的 self.pageSumself.urlsself.items 三个参数,还是其他?请教!
一直对类不清晰。

具体代码见下:

import requests
from bs4 import BeautifulSoup
from mylog import MyLog as mylog
import xlwt


class Item(object):
    title = None    #帖子标题
    firstAuthor = None  #帖子创建者
    firstTime = None   #帖子创建时间
    reNum = None    #总回复数
    content = None  #最后回复内容
    lastAuthor = None   #最后回复者
    lastTime = None #最后回复时间
    

class GetTiebaInfo(object):
    def __init__(self,url):
        self.url = url
        self.log = mylog()
        self.pageSum = 5
        self.urls = self.getUrls(self.pageSum)
        self.items = self.spider(self.urls)
        self.pipelines(self.items)
        
    def getUrls(self,pageSum):
        urls = []
        # 省略...
        return urls

    def spider(self, urls):
        items = []
        # 省略...
        return items
    
    def pipelines(self, items):
        # 省略...
      
      
if __name__ == '__main__':
    url = 'http://tieba.baidu.com/f?kw=%E6%9D%83%E5%88%A9%E7%9A%84%E6%B8%B8%E6%88%8F&ie=utf-8&pn=50'
    GTI = GetTiebaInfo(url)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

缱绻入梦 2022-09-13 10:50:47

__init__() 应该叫做 初始化函数,是类创建新实例后默认调用的函数,跟普通函数的执行没什么区别.
__init__(self, url) 分别对 5 个实例属性进行了赋值, 其中调用了三个实例方法, 这些实例方法又各自引用了实例属性作为参数

智商已欠费 2022-09-13 10:50:47

我感觉你是对self不太理解。

你可以把self当作GetTiebaInfo这个类的实例。

这样的话, 以下这些都是实例的属性:

self.url = url
self.log = mylog()
self.pageSum = 5
self.urls = self.getUrls(self.pageSum)
self.items = self.spider(self.urls)
self.pipelines(self.items)

多说一句,实例的属性应该和类的属性区分开

class GetTiebaInfo(object):
    class_item = ''
    def __init__(self,url):
        self.url = url
        self.log = mylog()
        self.pageSum = 5
        self.urls = self.getUrls(self.pageSum)
        self.items = self.spider(self.urls)
        self.pipelines(self.items)
    

这里的class_item就是类的属性。

断爱 2022-09-13 10:50:47

谢谢两位的热心回答

千柳 2022-09-13 10:50:47

一句话来说应该就是:实例化了当前类中的类方法。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文