python类中call和__call__的区别?

在使用tensorflow低阶API实现线性回归时,模型如下定义:

class Model(object):
    def __init__(self):
        self.w = tf.random.uniform([1])
        self.b = tf.random.uniform([1])

    def __call__(self,x):
        return self.w * x + self.b

但在使用keras时如下写

class Model(tf.keras.Model):
    def __init__(self):
        super(Model,self).__init__()
        self.dense = tf.keras.layers.Dense(1)

    def __call__(self,x):
        return self.dense(x)

会报错__call__() got an unexpected keyword argument 'training'
需要将__call__修改为call
这两者区别是什么?

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python中__str__ __name__ __call__
__str__ __name __ __call__ 怎么用什么意思啊
python中__new__和__init__的区别是什么?
字数限制, 标题:python中__new__和__init__的区别,2.X版本中object.__call__的机制是什么? 书上是这样说的: "由于元类是type的一个子类,所以type类的__call__把创建和初始化新的类对象的调用委托给元类。type中的call调用meta中的__new__创建了一个新的类并返回。" 以下是我的猜测: 同样的机制也适用于普通类(也就是非元类)。 举例: class B(object): def __new__(cls, *args, **kwds): print "three" print cls print B print "B.__new__", args, kwds return object.__new__(cls, *args, **kwds) def __init__(cls, *args, **kwds): print "four" print "B.__init__", args, kwds class A(object): def __new__(cls, *args, **kwds): print "one" print "A.__new__", args, kwds return object.__new__(B, *args, **kwds) def __init__(cls, *args, **kwds): print "two" print "A.__init__", args, kwds print A() print "=====================" print B() 输出如下: one A.__new__ () {} <__main__.B object at 0x027F3DD0> ===================== three <class '__main__.B'> <class '__main__.B'> B.__new__ () {} four B.__init__ () {} <__main__.B object at 0x027F3CF0> 我的疑问是:为什么执行这条语句 return object.__new__(B, *args, **kwds) 之后,A.__init__没有被自动调用? 我猜测,__new__和__init__被默认调用,是由于object.__call__的存在。但是call里面的机制是什么呢。。。
python的函数对象,是自己具有call属性,还是函数对象的类,或者父类具有call属性?
因为表达式x.y会去搜索继承树的方式去访问,那么,对于表达式soo.__call__显示的结果,访问的是soo本身就具有的call属性,还是访问的soo的function类,或者说最顶端的父类object类具有的call属性。![图片说明](https://img-ask.csdn.net/upload/201910/24/1571908183_371874.png)
python中报TypeError: __init__() missing 2 required positional arguments: 'url' and 'method'
demo1.py代码如下: import requests class RunMain: def __init__(self,url,method,data=None): self.res = self.run_main(url,method,data) def send_get(self,url,data): res = requests.get(url=url,data=data) return res.json() def send_post(self,url,data): res = requests.post(url=url,data=data) return res.json() def run_main(self,url,method,data=None): res = None if method == 'GET': res = self.send_get(url,data) else: res = self.send_post(url,data) return res if __name__ == '__main__': url = 'http://www.imooc.com/m/web/shizhanapi/loadmorepingjia.html' data = { 'cart': '11' } run = RunMain(url,'GET',data) print(run.res) test_method1.py代码如下: #coding = utf-8 import unittest from demo1 import RunMain class TestMethod(unittest.TestCase): def setUp(self): self.run = RunMain() def test_01(self): url = 'http://coding.imooc.com/api/cate' data = { 'timestamp': '1507034803124', 'uid': '5249191', 'uuid': '5ae7d1a22c82fb89c78f603420870ad7', 'secrect': '078474b41dd37ddd5efeb04aa591ec12', 'token': '7d6f14f21ec96d755de41e6c076758dd', 'cid': '0' } res = self.run.run_main(url,'POST',data) print(res) def test_02(self): url = 'http://coding.imooc.com/api/cate' data = { 'timestamp': '1507034803124', 'uid': '5249192', 'uuid': '5ae7d1a22c82fb89c78f603420870ad7', 'secrect': '078474b41dd37ddd5efeb04aa591ec12', 'token': '7d6f14f21ec96d755de41e6c076758dd', 'cid': '0' } res = self.run.run_main(url,'POST',data) print(res) if __name__ == '__main__': unittest.main(url,method) 但是报如下错误: Error Traceback (most recent call last): File "E:\MyLeaning\Python36-32\lib\unittest\case.py", line 59, in testPartExecutor yield File "E:\MyLeaning\Python36-32\lib\unittest\case.py", line 601, in run self.setUp() File "D:\www\ImoocInterface\base\test_method1.py", line 7, in setUp self.run = RunMain() TypeError: __init__() missing 2 required positional arguments: 'url' and 'method' ``` ```
python3 如何import quotes_historical_yahoo
如下两种import方式都报错 matplot版本是matplotlib-2.2.2-cp36-cp36m-win_amd64.whl 网上说matplotlib2.0.2之后没有matplotlib.finance,改成mpl_finance了。但mpl_finance里没有quotes_historical_yahoo,如何解决呢? **1.** from matplotlib.finance import quotes_historical_yahoo Traceback (most recent call last): File "pair.py", line 2, in <module> from matplotlib.finance import quotes_historical_yahoo ModuleNotFoundError: No module named 'matplotlib.finance' 提示matplotlib下面没有finance了 **2.** from mpl_finance import quotes_historical_yahoo_ochl Traceback (most recent call last): File "pair.py", line 4, in <module> from mpl_finance import quotes_historical_yahoo_ochl ImportError: cannot import name 'quotes_historical_yahoo_ochl' 改用mpl_finance,但里面没有quotes_historical_yahoo 或 quotes_historical_yahoo_ochl
python 'if __name__ == "__main__":' 错误,直接执行测试(Terminal 运行正常)
main.py中的测试函数 import os.path as osp import pickle import model import weights import test def get_tf_implementation(weights_path, all_layer_outs=False): print("Making Structure") tf_model = model.make_deng_tf_test(verbose=True, all_layer_outs=all_layer_outs) print("Loading Weights") tf_model = weights.load_weights(tf_model, weights_path, verbose=True) return tf_model def get_test_data(cache_file): print("Loading Test Data") if osp.exists(cache_file): with open(cache_file, 'rb') as fid: roidb = pickle.load(fid) print('data is loaded from {}'.format(cache_file)) print(f"Number of Images to test: {len(roidb)}") return roidb def get_weighted_tf_implementation(weights_path, all_layer_outs=False): tf_model = get_tf_implementation(weights_path, all_layer_outs) model.show_model_info(tf_model) return tf_model def test_tf_implementation(cache_file, weights_path, all_layer_outs=False): # Get Weighted Model tf_model = get_weighted_tf_implementation(weights_path, all_layer_outs) # Load Cached Test Data roidb = get_test_data(cache_file) # Test Network results = test.test_net(tf_model, roidb) return results if __name__ == "__main__ 代码段: if __name__ == "__main__": results = test_tf_implementation(cache_file="roidb_test_19_smol.pkl", weights_path="rgbd_det_iter_40000.h5") Terminal运行一切正常,给cache-file和weights-path赋值,然后正常执行test_tf_implementation. 不知道问题出在哪里 错误提示: Using TensorFlow backend. EE ====================================================================== ERROR: main.get_test_data ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/xijiejiao/anaconda2/envs/python3/lib/python3.6/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) TypeError: get_test_data() missing 1 required positional argument: 'cache_file' -------------------- >> begin captured logging << -------------------- tensorflow: Level 1: Registering FakeQuantWithMinMaxArgs (<function _FakeQuantWithMinMaxArgsGradient at 0x1314c2598>) in gradient. tensorflow: Level 1: Registering FakeQuantWithMinMaxVars (<function _FakeQuantWithMinMaxVarsGradient at 0x1314c27b8>) in gradient. ``` ``` Error Traceback (most recent call last): File "/Users/xijiejiao/anaconda2/envs/python3/lib/python3.6/unittest/case.py", line 59, in testPartExecutor yield File "/Users/xijiejiao/anaconda2/envs/python3/lib/python3.6/unittest/case.py", line 605, in run testMethod() File "/Users/xijiejiao/anaconda2/envs/python3/lib/python3.6/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) Exception: get_test_data() missing 1 required positional argument: 'cache_file' -------------------- >> begin captured logging << -------------------- tensorflow: Level 1: Registering FakeQuantWithMinMaxArgs (<function _FakeQuantWithMinMaxArgsGradient at 0x1314c2598>) in gradient. tensorflow: Level 1: Registering FakeQuantWithMinMaxVars (<function _FakeQuantWithMinMaxVarsGradient at 0x1314c27b8>) in gradient. ``` ``` Error Traceback (most recent call last): File "/Users/xijiejiao/anaconda2/envs/python3/lib/python3.6/unittest/case.py", line 59, in testPartExecutor yield File "/Users/xijiejiao/anaconda2/envs/python3/lib/python3.6/unittest/case.py", line 605, in run testMethod() File "/Users/xijiejiao/anaconda2/envs/python3/lib/python3.6/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) TypeError: test_tf_implementation() missing 2 required positional arguments: 'cache_file' and 'weights_path' tensorflow: Level 1: Registering NcclAllReduce (<function _all_sum_grad at 0x131d62620>) in gradient. tensorflow: Level 1: Registering NcclReduce (<function _reduce_sum_grad at 0x131d628c8>) in gradient. tensorflow: Level 1: Registering NcclBroadcast (<function _broadcast_grad at 0x131d629d8>) in gradient. ``` ``` ====================================================================== ERROR: main.test_tf_implementation ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/xijiejiao/anaconda2/envs/python3/lib/python3.6/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) TypeError: test_tf_implementation() missing 2 required positional arguments: 'cache_file' and 'weights_path' ---------------------------------------------------------------------- Ran 2 tests in 0.020s FAILED (errors=2) Process finished with exit code 1 Assertion failed Assertion failed Assertion failed Assertion failed
为什么用python3.5调用fdfs_client时报错ImportError: No module named 'mutagen'?
在已经导入fdfs-client-py==1.2.6时,用python3.5调用fdfs_client时报错ImportError: No module named 'mutagen'? ``` from fdfs_client.client import Fdfs_client Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/python/FastDFS/fdfs_client-py-master/fdfs_client/client.py", line 11, in <module> from fdfs_client.tracker_client import * File "/home/python/FastDFS/fdfs_client-py-master/fdfs_client/tracker_client.py", line 17, in <module> from fdfs_client.utils import * File "/home/python/FastDFS/fdfs_client-py-master/fdfs_client/utils.py", line 8, in <module> from mutagen._compat import StringIO ImportError: No module named 'mutagen' >>> ```
python face_recognition库中使用其他的功能都可以正常运行,但只有用face_encodings会报错?
已正确安装dlib和face_recognition库 __代码如下:__ ``` import face_recognition face_recognition.face_encodings("F:/multi-media/video frames/260.png") ``` 报错如下: ``` PS F:\multi-media> & C:/Users/ONE7/AppData/Local/Programs/Python/Python37/python.exe "f:/multi-media/vedio analysis.py" Traceback (most recent call last): File "f:/multi-media/vedio analysis.py", line 118, in <module> face_recognition.face_encodings("F:/multi-media/video frames/260.png", known_face_locations=None, num_jitters=1) File "C:\Users\ONE7\AppData\Local\Programs\Python\Python37\lib\site-packages\face_recognition\api.py", line 209, in face_encodings raw_landmarks = _raw_face_landmarks(face_image, known_face_locations, model="small") File "C:\Users\ONE7\AppData\Local\Programs\Python\Python37\lib\site-packages\face_recognition\api.py", line 153, in _raw_face_landmarks face_locations = _raw_face_locations(face_image) File "C:\Users\ONE7\AppData\Local\Programs\Python\Python37\lib\site-packages\face_recognition\api.py", line 102, in _raw_face_locations return face_detector(img, number_of_times_to_upsample) TypeError: __call__(): incompatible function arguments. The following argument types are supported: 1. (self: dlib.fhog_object_detector, image: array, upsample_num_times: int=0) -> dlib.rectangles Invoked with: <dlib.fhog_object_detector object at 0x0000026A438B91B0>, 'F:/multi-media/video frames/260.png', 1 ```
python subprocess.call()执行其他目录下.py文件的疑问
python 新手,下载别人的代码自己跑,有一段执行其他目录下的python文件的代码,会报错。 ``` cmd = './b/b.py' subprocess.call(cmd, shell=True) ``` 报错为 **'.' 不是内部或外部命令,也不是可运行的程序 或批处理文件。** 请问这是怎么解决? 运行环境为win10,python3.6
在引入qgis.core时报错ValueError: PyCapsule_GetPointer called with incorrect name
Traceback (most recent call last): File "D:/pyCode/first/index.py", line 1, in <module> from qgis.core import * File "E:\QGIS\apps\qgis\python\qgis\__init__.py", line 78, in <module> import qgis.gui File "E:\QGIS\apps\qgis\python\qgis\gui\__init__.py", line 25, in <module> from qgis._gui import * ValueError: PyCapsule_GetPointer called with incorrect name
类工厂函数中的一个问题(流畅的python书中的例子)
这是流畅的python一书中关于类工厂函数的代码: def factory(cls_name,field_name): try: field_name=field_name.replace(',',' ').spilt(' ') except AttributeError: pass field_name=tuple(field_name) def __init__(self,*args,**kwargs): attrs=dict(zip(self.__slots__,args)) attrs.update(kwargs) for name,value in attrs.items(): setattr(self,name,value) def __iter__(self): for name in self.__slots__: yield getattr(self,name) def __repr__(self): values=','.join('{}={!r}'.format(*i) for i in zip(self.__slots__,self)) return '{}({})'.format(self.__class__.__name__,values) cls_attrs=dict(__slots__=field_name, __init__=__init__, __iter__=__iter__, __repr__=__repr__) return type(cls_name,(object,),cls_attrs) Dog=factory('Dog','name weight owner') dog=Dog('rex',30,'sunshuofeng') print(dog) 我在运行时其报错了: Traceback (most recent call last): File "C:\Users\18022863809\Desktop\python_work\11.py", line 27, in <module> Dog=factory('Dog','name weight owner') File "C:\Users\18022863809\Desktop\python_work\11.py", line 26, in factory return type(cls_name,(object,),cls_attrs) TypeError: __slots__ must be identifiers 这是为什么?
python 类对象中静态属性的作用域与模块中全局变量的作用域差别
1.之前我理解类是为了节省时间演化来的,因此里面的类的静态属性应该和模块中的全局变量作用范围类似,那类中的静态属性应该在整个类中都能访问。但实际为代码段所示。 2. ``` 2.1 全局变量能被内部定义函数所访问: c=10 def glass(x): return x*c >>> glass(5) #能访问全局变量 50 ``` ``` 2.实例对象中的方法直接访问静态属性: class A: c=10 def glass(self,x): return x*c #除非改成return x*self.c >>> a=A() >>> a.glass(5) Traceback (most recent call last): File "<pyshell#1>", line 1, in <module> a.glass(5) File "F:/new/new world/ex45/delete.all1.py", line 4, in glass return x*c NameError: name 'c' is not defined ``` 3. 疑惑点:为什么有这样的差别呢?难道在类对象中,只能通过self.的形式来传递属性或者方法吗?
python 使用with con:连接数据库时 报错AttributeError: __enter__怎么解决呢?
# python 使用with con:连接数据库代码如下 import MySQLdb as mdb import sys con=mdb.connect('localhost', 'root', 'mysql', 'test'); with con: cur = con.cursor() # 执行一个查询 cur.execute("SELECT VERSION()") # 取得上个查询的结果,是单个结果 data = cur.fetchone() print("Database version : %s " % data) 运行上面的 程序会报下面的错误: Traceback (most recent call last): File "C:/Users/x'x'x/PycharmProjects/test01/python_mysql/test_mysql.py", line 8, in <module> with con: AttributeError: __enter__ 怎么解决呢?
Value passed to parameter 'begin' has DataType float32 not in list of allowed values: int32, int64报错 文件在array_ops.py
如题 报错文件在array_ops.py 源码为 ``` def loss_jeq(self, Q_select): jeq = 0.0 for i in range(self.batch_size): ae = self.actiond[i] max_value = float("-inf") for a in range(self.n_actions): max_value = tf.maximum(Q_select[i][a] + self.loss_l(ae, a), max_value) q_value = Q_select[i][ae]#此处报错 jeq += (max_value - q_value) return jeq ``` 报错为 ``` Traceback (most recent call last): File "J:/C51/PYCHARMmm/transfer-learning/2.10/训练好的/VGT-dueling_1098s_zl _xxx_0.1/VGT-dueling_45s_zl _xxx/VGT_DQN_1098_0.1S.py", line 282, in <module> e_greedy_increment=INCREMENT, dueling=True, output_graph=True) File "J:/C51/PYCHARMmm/transfer-learning/2.10/训练好的/VGT-dueling_1098s_zl _xxx_0.1/VGT-dueling_45s_zl _xxx/VGT_DQN_1098_0.1S.py", line 47, in __init__ self._build_net() File "J:/C51/PYCHARMmm/transfer-learning/2.10/训练好的/VGT-dueling_1098s_zl _xxx_0.1/VGT-dueling_45s_zl _xxx/VGT_DQN_1098_0.1S.py", line 127, in _build_net + 1.0 * self.loss_jeq(self.q_eval)\ File "J:/C51/PYCHARMmm/transfer-learning/2.10/训练好的/VGT-dueling_1098s_zl _xxx_0.1/VGT-dueling_45s_zl _xxx/VGT_DQN_1098_0.1S.py", line 78, in loss_jeq q_value = Q_select[i][ae] File "H:\Anaconda3\envs\rl\lib\site-packages\tensorflow\python\ops\array_ops.py", line 525, in _slice_helper name=name) File "H:\Anaconda3\envs\rl\lib\site-packages\tensorflow\python\ops\array_ops.py", line 691, in strided_slice shrink_axis_mask=shrink_axis_mask) File "H:\Anaconda3\envs\rl\lib\site-packages\tensorflow\python\ops\gen_array_ops.py", line 8521, in strided_slice name=name) File "H:\Anaconda3\envs\rl\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 609, in _apply_op_helper param_name=input_name) File "H:\Anaconda3\envs\rl\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 60, in _SatisfiesTypeConstraint ", ".join(dtypes.as_dtype(x).name for x in allowed_list))) TypeError: Value passed to parameter 'begin' has DataType float32 not in list of allowed values: int32, int64 ``` 望各位解答!
c++调用python脚本问题
Traceback (most recent call last): File "<string>", line 1, in <module> File "E:\WXN\Python\Project\Backoff_sent.py", line 3, in <module> import nltk File "D:\software\Python\lib\site-packages\nltk\__init__.py", line 89, in <module> from nltk.internals import config_java File "D:\software\Python\lib\site-packages\nltk\internals.py", line 29, in <module> from nltk import compat File "D:\software\Python\lib\site-packages\nltk\compat.py", line 97, in <module> from urllib2 import (urlopen, HTTPError, URLError, File "D:\software\Python\Lib\urllib2.py", line 94, in <module> import httplib File "D:\software\Python\Lib\httplib.py", line 71, in <module> import socket File "D:\software\Python\Lib\socket.py", line 47, in <module> import _socket ImportError: No module named _socket 以上是运行出错的内容,我看了D:\software\Python\Lib中没有_socket.py,在D:\software\Python\DLLs中有_socket.pyd文件。这个问题该怎么解决?请教各位大神。
python scrapy 爬虫图片新手求助
求问大神 我这个data她怎么了 报错: 2020-02-07 09:24:55 [scrapy.utils.log] INFO: Scrapy 1.8.0 started (bot: meizitu) 2020-02-07 09:24:55 [scrapy.utils.log] INFO: Versions: lxml 4.5.0.0, libxml2 2.9.5, cssselect 1.1.0, parsel 1.5.2, w3lib 1.21.0, Twisted 19.10.0, Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)], pyOpenSSL 19.1.0 (OpenSSL 1.1.1d 10 Sep 2019), cryptography 2.8, Platform Windows-10-10.0.17763-SP0 2020-02-07 09:24:55 [scrapy.crawler] INFO: Overridden settings: {'BOT_NAME': 'meizitu', 'NEWSPIDER_MODULE': 'meizitu.spiders', 'ROBOTSTXT_OBEY': True, 'SPIDER_MODULES': ['meizitu.spiders']} 2020-02-07 09:24:55 [scrapy.extensions.telnet] INFO: Telnet Password: 0936097982b9bcc8 2020-02-07 09:24:55 [scrapy.middleware] INFO: Enabled extensions: ['scrapy.extensions.corestats.CoreStats', 'scrapy.extensions.telnet.TelnetConsole', 'scrapy.extensions.logstats.LogStats'] 2020-02-07 09:24:56 [scrapy.middleware] INFO: Enabled downloader middlewares: ['scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware', 'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware', 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware', 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware', 'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware', 'scrapy.downloadermiddlewares.retry.RetryMiddleware', 'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware', 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware', 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware', 'scrapy.downloadermiddlewares.cookies.CookiesMiddleware', 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware', 'scrapy.downloadermiddlewares.stats.DownloaderStats'] 2020-02-07 09:24:56 [scrapy.middleware] INFO: Enabled spider middlewares: ['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware', 'scrapy.spidermiddlewares.offsite.OffsiteMiddleware', 'scrapy.spidermiddlewares.referer.RefererMiddleware', 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware', 'scrapy.spidermiddlewares.depth.DepthMiddleware'] Unhandled error in Deferred: 2020-02-07 09:24:56 [twisted] CRITICAL: Unhandled error in Deferred: Traceback (most recent call last): File "e:\python3.7\lib\site-packages\scrapy\crawler.py", line 184, in crawl return self._crawl(crawler, *args, **kwargs) File "e:\python3.7\lib\site-packages\scrapy\crawler.py", line 188, in _crawl d = crawler.crawl(*args, **kwargs) File "e:\python3.7\lib\site-packages\twisted\internet\defer.py", line 1613, in unwindGenerator return _cancellableInlineCallbacks(gen) File "e:\python3.7\lib\site-packages\twisted\internet\defer.py", line 1529, in _cancellableInlineCallbacks _inlineCallbacks(None, g, status) --- <exception caught here> --- File "e:\python3.7\lib\site-packages\twisted\internet\defer.py", line 1418, in _inlineCallbacks result = g.send(result) File "e:\python3.7\lib\site-packages\scrapy\crawler.py", line 86, in crawl self.engine = self._create_engine() File "e:\python3.7\lib\site-packages\scrapy\crawler.py", line 111, in _create_engine return ExecutionEngine(self, lambda _: self.stop()) File "e:\python3.7\lib\site-packages\scrapy\core\engine.py", line 70, in __init__ self.scraper = Scraper(crawler) File "e:\python3.7\lib\site-packages\scrapy\core\scraper.py", line 71, in __init__ self.itemproc = itemproc_cls.from_crawler(crawler) File "e:\python3.7\lib\site-packages\scrapy\middleware.py", line 53, in from_crawler return cls.from_settings(crawler.settings, crawler) File "e:\python3.7\lib\site-packages\scrapy\middleware.py", line 34, in from_settings mwcls = load_object(clspath) File "e:\python3.7\lib\site-packages\scrapy\utils\misc.py", line 46, in load_object mod = import_module(module) File "e:\python3.7\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1006, in _gcd_import File "<frozen importlib._bootstrap>", line 983, in _find_and_load File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 677, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 724, in exec_module File "<frozen importlib._bootstrap_external>", line 860, in get_code File "<frozen importlib._bootstrap_external>", line 791, in source_to_code File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed builtins.SyntaxError: unexpected EOF while parsing (pipelines.py, line 22) 2020-02-07 09:24:56 [twisted] CRITICAL: Traceback (most recent call last): File "e:\python3.7\lib\site-packages\twisted\internet\defer.py", line 1418, in _inlineCallbacks result = g.send(result) File "e:\python3.7\lib\site-packages\scrapy\crawler.py", line 86, in crawl self.engine = self._create_engine() File "e:\python3.7\lib\site-packages\scrapy\crawler.py", line 111, in _create_engine return ExecutionEngine(self, lambda _: self.stop()) File "e:\python3.7\lib\site-packages\scrapy\core\engine.py", line 70, in __init__ self.scraper = Scraper(crawler) File "e:\python3.7\lib\site-packages\scrapy\core\scraper.py", line 71, in __init__ self.itemproc = itemproc_cls.from_crawler(crawler) File "e:\python3.7\lib\site-packages\scrapy\middleware.py", line 53, in from_crawler return cls.from_settings(crawler.settings, crawler) File "e:\python3.7\lib\site-packages\scrapy\middleware.py", line 34, in from_settings mwcls = load_object(clspath) File "e:\python3.7\lib\site-packages\scrapy\utils\misc.py", line 46, in load_object mod = import_module(module) File "e:\python3.7\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1006, in _gcd_import File "<frozen importlib._bootstrap>", line 983, in _find_and_load File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 677, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 724, in exec_module File "<frozen importlib._bootstrap_external>", line 860, in get_code File "<frozen importlib._bootstrap_external>", line 791, in source_to_code File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "E:\python_work\爬虫\meizitu\meizitu\pipelines.py", line 22 f.write(data) ^ SyntaxError: unexpected EOF while parsing 代码如下: pipeline ``` import requests class MeizituPipeline(object): def process_item(self, item, spider): print("main_title:",item['main_title']) print("main_image:", item['main_image']) print("main_tags:", item['main_tags']) print("main_meta:", item['main_meta']) print("page:", item['main_pagenavi']) url = requests.get(item['main_image']) print(url) try: with open(item['main_pagenavi'] +'.jpg','wb') as f: data = url.read() f.write(data) ``` image.py ``` import scrapy from scrapy.http import response from ..items import MeizituItem class ImageSpider(scrapy.Spider): #定义Spider的名字scrapy crawl meiaitu name = 'SpiderMain' #允许爬虫的域名 allowed_domains = ['www.mzitu.com/203554'] #爬取的首页列表 start_urls = ['https://www.mzitu.com/203554'] #负责提取response的信息 #response代表下载器从start_urls中的url的到的回应 #提取的信息 def parse(self,response): #遍历所有节点 for Main in response.xpath('//div[@class = "main"]'): item = MeizituItem() #匹配所有节点元素/html/body/div[2]/div[1]/div[3]/p/a content = Main.xpath('//div[@class = "content"]') item['main_title'] = content.xpath('./h2/text()') item['main_image'] = content.xpath('./div[@class="main-image"]/p/a/img') item['main_meta'] = content.xpath('./div[@class="main-meta"]/span/text()').extract() item['main_tags'] = content.xpath('./div[@class="main-tags"]/a/text()').extract() item['main_pagenavi'] = content.xpath('./div[@class="main_pagenavi"]/span/text()').extract_first() yield item new_links = response.xpath('.//div[@class="pagenavi"]/a/@href').extract() new_link =new_links[-1] yield scrapy.Request(new_link,callback=self.parse) ``` setting ``` BOT_NAME = 'meizitu' SPIDER_MODULES = ['meizitu.spiders'] NEWSPIDER_MODULE = 'meizitu.spiders' ROBOTSTXT_OBEY = True #配置默认请求头 DEFAULT_REQUEST_HEADERS = { "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36", 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' } ITEM_PIPELINES = { 'meizitu.pipelines.MeizituPipeline':300, } IMAGES_STORE = 'E:\python_work\爬虫\meizitu' IMAGES_MIN_HEIGHT = 1050 IMAGES_MIN_WIDTH = 700 ```
python怎样调用和注册dll或com组件
我尝试调用大漠插件代码如下 import win32com.client dm = win32com.client.Dispatch('dm.dmsoft') print(dm.Ver()) 报错如下: F:\soft\python\python.exe F:/python_work/test_dir/test.py Traceback (most recent call last): File "F:\soft\python\lib\site-packages\win32com\client\dynamic.py", line 89, in _GetGoodDispatch IDispatch = pythoncom.connect(IDispatch) pywintypes.com_error: (-2147221021, '操作无法使用', None, None) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "F:/python_work/test_dir/test.py", line 9, in <module> dm = win32com.client.Dispatch('dm.dmsoft') File "F:\soft\python\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx) File "F:\soft\python\lib\site-packages\win32com\client\dynamic.py", line 114, in _GetGoodDispatchAndUserName return (_GetGoodDispatch(IDispatch, clsctx), userName) File "F:\soft\python\lib\site-packages\win32com\client\dynamic.py", line 91, in _GetGoodDispatch IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch) pywintypes.com_error: (-2147221164, '没有注册类', None, None) 请大神们详细指点下怎样操作 本人小白一个 跪谢!! QQ:1746476939
Python学习过程中的问题:继承__init__的参数数量如何确定?
如题,版本python3.7,代码如下 ``` class People(): def __init__(self, name, city): self.name = name self.city = city def __str__(self): return "({} {})".format(self.name, self.city) def __repr__(self): return "({} {})".format(self.name, self.city) def moveto(self, new_city): self.city = new_city def __lt__(self, other): return self.city < other.city class Teacher(People): def __init___(name, city, school): super().__init__(self, name, city) self.school = school def moveto(self, new_school): self.school = new_school def __lt__(self, other): return self.school < other.school >>> Teacher("Xu", "China", "PekingUniversity") Traceback (most recent call last): File "<pyshell#94>", line 1, in <module> Teacher("Xu", "China", "PekingUniversity") TypeError: __init__() takes 3 positional arguments but 4 were given >>> ```
为什么用python3.5调用fdfs_client时抛出异常raise DataError(errmsg + '(uploading)')?
用python3.5调用fdfs_client时抛出异常raise DataError(errmsg + '(uploading)') ``` Python 3.5.2 (default, Nov 12 2018, 13:43:14) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from fdfs_client.client import Fdfs_client >>> client = Fdfs_client('/etc/fdfs/client.conf') >>> ret = client.upload_by_filename('test1') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/python/FastDFS/fdfs_client-py-master/fdfs_client/client.py", line 88, in upload_by_filename raise DataError(errmsg + '(uploading)') fdfs_client.exceptions.DataError: [-] Error: test1 is not a file.(uploading) >>> ``` 可是我明明有test1这个文件啊
130 个相见恨晚的超实用网站,一次性分享出来
文末没有公众号,只求 点赞 + 关注 搞学习 知乎:www.zhihu.com 大学资源网:http://www.dxzy163.com/ 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:stu
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
win10系统安装教程(U盘PE+UEFI安装)
一、准备工作 u盘,电脑一台,win10原版镜像(msdn官网) 二、下载wepe工具箱  极力推荐微pe(微pe官方下载) 下载64位的win10 pe,使用工具箱制作启动U盘打开软件,   选择安装到U盘(按照操作无需更改) 三、重启进入pe系统   1、关机后,将U盘插入电脑 2、按下电源后,按住F12进入启动项选择(技嘉主板是F12)     选择需要启
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n
java源码分析 Arrays.asList()与Collections.unmodifiableList()
举个栗子 本章示例代码来自java编程思想——17.4.1未获支持的操作——Unsupported类。 import java.util.*; public class Unsupported { static void test(String msg, List&lt;String&gt; list) { System.out.println("--- " + msg
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
Java学习笔记(七十二)—— Cookie
概述 会话技术: 会话:一次会话中包含多次请求和响应 一次会话:浏览器第一次给服务器发送资源请求,会话建立,直到有一方断开为止 功能:在一次会话的范围内的多次请求间,共享数据 方式: 客户端会话技术:Cookie,把数据存储到客户端 服务器端会话技术:Session,把数据存储到服务器端 Cookie 概念:客户端会话技术,将数据存储到客户端 快速入门: 使用步骤: 创建C
程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆  每天早上8:30推送 作者| Mr.K   编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯
程序员该看的几部电影
##1、骇客帝国(1999) 概念:在线/离线,递归,循环,矩阵等 剧情简介: 不久的将来,网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂,并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。 可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?
蓝桥杯知识点汇总:基础知识和常用算法
文章目录JAVA基础语法:算法竞赛常用的JAVA API:基础算法待更: 此系列包含蓝桥杯所考察的绝大部分知识点,一共有基础语法,常用API,基础算法和数据结构,和往年真题四部分,虽然语言以JAVA为主,但算法部分是相通的,C++组的小伙伴也可以看哦。所有文章的链接都会在此公布,还有很多没有更新,会持续更新,如果大佬发现文章有错误的地方请指正,我会十分感谢。另外,有什么问题可私信我~ JAVA基础
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布了 2019年国民经济报告 ,报告中指出:年末中国大陆总人口(包括31个
实现简单的轮播图(单张图片、多张图片)
前言 刚学js没多久,这篇博客就当做记录了,以后还会完善的,希望大佬们多多指点。ps:下面出现的都是直接闪动,没有滑动效果的轮播图。 单张图片的替换 原理 1.将几张图片叠在一起,通过改变"display:block"和"display:none"这两个属性实现替换。 (前提:在css中给所有图片加上display:none属性) 2.不用将图片叠在一起,将一个div当做"窗口",通过"of
强烈推荐10本程序员在家读的书
很遗憾,这个鼠年春节注定是刻骨铭心的,新型冠状病毒让每个人的神经都是紧绷的。那些处在武汉的白衣天使们,尤其值得我们的尊敬。而我们这些窝在家里的程序员,能不外出就不外出,就是对社会做出的最大的贡献。 有些读者私下问我,窝了几天,有点颓丧,能否推荐几本书在家里看看。我花了一天的时间,挑选了 10 本我最喜欢的书,你可以挑选感兴趣的来读一读。读书不仅可以平复恐惧的压力,还可以对未来充满希望,毕竟苦难终
Linux自学篇——linux命令英文全称及解释
man: Manual 意思是手册,可以用这个命令查询其他命令的用法。 pwd:Print working directory 显示当前目录 su:Swith user 切换用户,切换到root用户 cd:Change directory 切换目录 ls:List files 列出目录下的文件 ps:Process Status 进程状态 mk
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
文章目录1. 前言2. 数据下载3. 数据处理4. 数据可视化 1. 前言 今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。 2月6日追记:本文发布后,腾讯的数据源多次变更u
智力题(程序员面试经典)
NO.1  有20瓶药丸,其中19瓶装有1克/粒的药丸,余下一瓶装有1.1克/粒的药丸。给你一台称重精准的天平,怎么找出比较重的那瓶药丸?天平只能用一次。 解法 有时候,严格的限制条件有可能反倒是解题的线索。在这个问题中,限制条件是天平只能用一次。 因为天平只能用一次,我们也得以知道一个有趣的事实:一次必须同时称很多药丸,其实更准确地说,是必须从19瓶拿出药丸进行称重。否则,如果跳过两瓶或更多瓶药
Java与Python学习通法(1)和(2)序言和编程语言发展史怎么学
大家好,我是 jacky 朱元禄,很高兴跟大家一起学习 《Java与Python学习通法系列》。 首先,说一下,我为什么要录这个课; 我们都已经知道Java 和 Python的视频教程和书籍,可以说是非常非常多了,那我录制本系列课的意义是什么呢? (1)课程特色一:我想告诉大家学习编程语言是有捷径的,这个捷径就是 理解技术背后的“哲学逻辑”,或者说是“人文逻辑”,相信你听完 jack
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
阿里架构师花近十年时间整理出来的Java核心知识pdf(Java岗)
由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容! 整理了一份Java核心知识点。覆盖了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。       欢迎大家加入java学习交流社区  点击加入   可获取文中文档       小编推荐:     
Python基础知识点梳理
python基础知识点梳理 摘要: 本文主要介绍一些平时经常会用到的python基础知识点,用于加深印象,也算是对于学习这门语言的一个总结与回顾。python的详细语法介绍可以查看官方编程手册,也有一些在线网站对python语法进行了比较全面的介绍,比如菜鸟教程: python3 教程|菜鸟教程 为了方便聚焦知识点,本文涉及的操作实例并不多,想学好一门语言关键还得自己多编码多实践。 python语
2020年2月全国程序员工资统计,平均工资13716元
趋势 2020年2月,中国大陆程序员平均工资13716元,比上个月增加。具体趋势如图: 各主要程序员城市工资变化 城市 北京,上海,深圳,杭州,广州四地的工资最高。 city 平均工资 最低工资 中位数 最高工资 招聘人数 百分比 北京 18098 3750 15000 45000 20529 9.53% 深圳 16903 5750 15000 37500 30941 14
Java坑人面试题系列: 包装类(中级难度)
Java Magazine上面有一个专门坑人的面试题系列: https://blogs.oracle.com/javamagazine/quiz-2。 这些问题的设计宗旨,主要是测试面试者对Java语言的了解程度,而不是为了用弯弯绕绕的手段把面试者搞蒙。 如果你看过往期的问题,就会发现每一个都不简单。 这些试题模拟了认证考试中的一些难题。 而 “中级(intermediate)” 和 “高级(ad
为什么说程序员做外包没前途?
之前做过不到3个月的外包,2020的第一天就被释放了,2019年还剩1天,我从外包公司离职了。我就谈谈我个人的看法吧。首先我们定义一下什么是有前途 稳定的工作环境 不错的收入 能够在项目中不断提升自己的技能(ps:非技术上的认知也算) 找下家的时候能找到一份工资更高的工作 如果你目前还年轻,但高不成低不就,只有外包offer,那请往下看。 外包公司你应该
相关热词 c# 为空 判断 委托 c#记事本颜色 c# 系统默认声音 js中调用c#方法参数 c#引入dll文件报错 c#根据名称实例化 c#从邮件服务器获取邮件 c# 保存文件夹 c#代码打包引用 c# 压缩效率
立即提问