鍍金池/ 問答/Java  Python  網(wǎng)絡(luò)安全/ python中類的方法引用還是參數(shù)引用

python中類的方法引用還是參數(shù)引用

代碼:

   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)

構(gòu)造函數(shù)是引用了 self.getUrls、self.spider、self.pipelines 三個方法?
還是引用了三個方法中的 self.pageSumself.urls、self.items 三個參數(shù),還是其他?請教!
一直對類不清晰。

具體代碼見下:

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


class Item(object):
    title = None    #帖子標(biāo)題
    firstAuthor = None  #帖子創(chuàng)建者
    firstTime = None   #帖子創(chuàng)建時間
    reNum = None    #總回復(fù)數(shù)
    content = None  #最后回復(fù)內(nèi)容
    lastAuthor = None   #最后回復(fù)者
    lastTime = None #最后回復(fù)時間
    

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)
回答
編輯回答
風(fēng)畔

__init__() 應(yīng)該叫做 初始化函數(shù),是類創(chuàng)建新實(shí)例后默認(rèn)調(diào)用的函數(shù),跟普通函數(shù)的執(zhí)行沒什么區(qū)別.
__init__(self, url) 分別對 5 個實(shí)例屬性進(jìn)行了賦值, 其中調(diào)用了三個實(shí)例方法, 這些實(shí)例方法又各自引用了實(shí)例屬性作為參數(shù)

2017年12月12日 14:14
編輯回答
青瓷

一句話來說應(yīng)該就是:實(shí)例化了當(dāng)前類中的類方法。

2017年9月26日 18:12
編輯回答
入她眼

我感覺你是對self不太理解。

你可以把self當(dāng)作GetTiebaInfo這個類的實(shí)例。

這樣的話, 以下這些都是實(shí)例的屬性:

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)

多說一句,實(shí)例的屬性應(yīng)該和類的屬性區(qū)分開

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就是類的屬性。

2017年8月8日 05:50
編輯回答
痞性

謝謝兩位的熱心回答

2018年3月15日 22:23