Python使用类装饰器出现报错:TypeError: test2() missing 1 required positional argument: 'b'

class Timer(object):
    def __init__(self, func):
        self.func = func

    def __call__(self, *args, **kwargs):
        print("权限验证成功...")
        result = self.func(*args, **kwargs)
        print("新添加退出成功提示...")
        return result


class Test(object):

    @Timer
    def test2(self, a, b):  # 需要参数的
        c = a + b
        print("test2两个数的求和结果是:", c)


t = Test()
t.test2(2, 3)

出现报错:TypeError: test2() missing 1 required positional argument: 'b'

为什么会出现selef必须传参呢,如果在test2上面添加@staticmethod删除selef参数将不会出现报错,但是这不符合装饰器的用法了,应该怎么改才能使得Test类不该任何代码的情况下加@Timer就能直接使用呢

2个回答

函数式装饰器即可

def test2(self, a, b):
这里是test2,不是Test,所以不是构造函数
self参数在调用的时候不能省略

t.test2(2, 3)
修改为
t.test2(t, 2, 3)

zha6476003
(.*)释然 但是我是调用Test类下的test2呀类中的所有方法本类就应该有一个self,除非该方法是静态方法,你说的这样加了装饰器还需要改历史代码肯定是不合理的,应该是上面的Timer还需要修改(虽然不知道怎么改)
11 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
SWIG 3.0+Python 2.7 报错:TypeError in method ... 求指点
最近需要用Python调用一个C++写的DLL接口,总是出问题于是做了一个小测试,发现有一个类初始化始终报错。 Python调用Dll接口中一个CreateEsunnyQuotClient 初始化方法 传递参数 IEsunnyQuotNotify * 的时候,出现错误,看起来是要传递一个指针变量,但是Python没有指针啊?直接使用ctypes 应该也不对吧,实在不解了。 TypeError: in method 'CreateEsunnyQuotClient', argument 1 of type 'IEsunnyQuotNotify * ' 具体错误信息如图: ![图片说明](https://img-ask.csdn.net/upload/201609/23/1474601335_258908.png) 下面是我做的一些测试用的文件:头文件 example.h、C++文件 example.cpp、SWIG接口文件 example.i、distutils安装文件 setup.py、测试文件 TestExample.py、 我用的环境是Python 2.7 32位、VS2015(2010也可以) 希望高人指点,已经忙了3天3夜了还是没有结果。十分感谢。 -------------------------------------------------------------------------------- /* example.h */ ``` class IEsunnyQuotNotify { public: /** *登录反馈回调函数 * @param err 错误号 0表示登录成功,否则失败 * @param errtext 错误信息 * @return 0表示成功,否则失败 */ virtual int OnRspLogin(int err,const char *errtext)=0; }; //创建接口指针(使用前调用) IEsunnyQuotClient * CreateEsunnyQuotClient(IEsunnyQuotNotify * notify); //释放接口指针(使用后调用) void DelEsunnyQuotClient(IEsunnyQuotClient * client); ``` -------------------------------------------------------------------------------- /* example.cpp */ ``` int IEsunnyQuotClient::Connect(const char *ip, int port) { return 0; } void IEsunnyQuotClient::DisConnect() { return; } class EsunnyQuotClient : public IEsunnyQuotClient { int Connect(const char *ip, int port) { return 0; }; void DisConnect() { return ; }; }; int IEsunnyQuotNotify::OnRspLogin(int err, const char *errtext) { return 0; } IEsunnyQuotClient * CreateEsunnyQuotClient(IEsunnyQuotNotify * notify) { return &EsunnyQuotClient(); } ``` -------------------------------------------------------------------------------- /* example.i*/ ``` /* File : example.i */ %module example %{ #include "example.h" %} class Shape { public: Shape() { nshapes++; } virtual ~Shape() { nshapes--; } double x, y; void move(double dx, double dy); virtual double area() = 0; virtual double perimeter() = 0; static int nshapes; }; class Circle : public Shape { private: double radius; public: Circle(double r) : radius(r) { } virtual double area(); virtual double perimeter(); }; class Square : public Shape { private: double width; public: Square(double w) : width(w) { } virtual double area(); virtual double perimeter(); }; class IEsunnyQuotClient { public: /** *连接行情数据服务器IP及端口 * @param ip 服务器的IP * @param port 服务器的端口 * @return 0表示连接成功,否则失败 */ virtual int Connect(const char *ip,int port)=0; /** *断开当前连接 */ virtual void DisConnect()=0; }; class IEsunnyQuotNotify { public: /** *登录反馈回调函数 * @param err 错误号 0表示登录成功,否则失败 * @param errtext 错误信息 * @return 0表示成功,否则失败 */ virtual int OnRspLogin(int err,const char *errtext)=0; }; //创建接口指针(使用前调用) IEsunnyQuotClient * CreateEsunnyQuotClient(IEsunnyQuotNotify * notify); ``` -------------------------------------------------------------------------------- /* setup.py */ ``` from distutils.core import setup, Extension example_module = Extension('_example', libraries = ['example'], sources=['example_wrap.cxx'], ) setup (name = 'example', version = '0.1', author = "SWIG Docs", description = """example wrap with swig""", ext_modules = [example_module], py_modules = ["example"], ) ``` -------------------------------------------------------------------------------- /* TestExample.py */ ``` #from EsunnyQuot import IEsunnyQuotClient, IEsunnyQuotNotify, CreateEsunnyQuotClient, DelEsunnyQuotClient from example import IEsunnyQuotClient, IEsunnyQuotNotify, CreateEsunnyQuotClient class EsunnyQuotNoify(IEsunnyQuotNotify): def __init__(self, *args, **kwargs): pass class EsunnyQuotClient(IEsunnyQuotClient): def __init__(self): pass client = None try: notify = EsunnyQuotNoify() print type(notify) client = CreateEsunnyQuotClient(notify) finally: if client is not None: #DelEsunnyQuotClient(client) pass ```
html报错:Uncaught TypeError的错误,求解答
html报错:Uncaught TypeError: $(...).dropdown is not a function,但是控制台没有报错,页面的下拉图标没有显示,这是哪里出错了呢?引用的js以前还是可以用的。
Python语法错误:TypeError: string indices must be integers
是这样的,这是个Python爬虫程序,有时候会中断 到这个地方,是字符串下标不对? ![图片说明](https://img-ask.csdn.net/upload/201909/20/1568948882_384629.png) ![图片说明](https://img-ask.csdn.net/upload/201909/20/1568948557_509140.png) ![图片说明](https://img-ask.csdn.net/upload/201909/20/1568948570_798667.png)
python问题:TypeError: expected string or buffer
``` import requests import re #这是用requests进行的数据爬取 url = 'https://car.autohome.com.cn/photo/series/26709/1/3793691.html' html = requests.get(url) # print (html.text) img_url = re.findall(r'<img id="img" src="(.*?)"',html)[0] img_url = 'http:' + img_url print(img_url) img_response = requests.get(img_url) img_data = img_response.content f = open('2.jpg','wb') f.write(img_data) f.close() 报错: Traceback (most recent call last): File "D:/Java/Python/src/hao/__init__.py", line 9, in <module> img_url = re.findall(r'<img id="img" src="(.*?)"',html)[0] File "C:\Python27\lib\re.py", line 181, in findall return _compile(pattern, flags).findall(string) TypeError: expected string or buffer ```
请问如下代码为什么报错:TypeError: Fetch argument None has invalid type <class 'NoneType'>
``` import tensorflow as tf w1 = tf.Variable([[1, 2]]) w2 = tf.Variable([[3, 4]]) y = tf.matmul(w1, [[9], [10]]) grads = tf.gradients(y, [w1]) with tf.Session() as sess: sess.run(tf.global_variables_initializer()) gradval = sess.run(grads) print(gradval) ```
matplotlib: TypeError: unsupported operand type(s) for -: 'str' and 'float'求解决
![图片说明](https://img-ask.csdn.net/upload/201909/08/1567935208_587892.png) df6是整体数据 出现这个错误 matplotlib: TypeError: unsupported operand type(s) for -: 'str' and 'float' 我知道可能是字符串类型有问题,但是我没找到具体在代码上怎么实现 我的region_是object,area是float
yolo3 使用convert.py报错,TypeError: buffer is too small for requested array
Traceback (most recent call last): File "convert.py", line 262, in <module> _main(parser.parse_args()) File "convert.py", line 143, in _main buffer=weights_file.read(weights_size * 4)) TypeError: buffer is too small for requested array 请大佬指导
关于python元类遇到的问题(TypeError: metaclass conflict)?
from abc import ABCMeta class test1(object): __metaclass__ = ABCMeta def test1(self): print 'test1' class UpperAttrMetaclass(type): def __new__(cls, name, bases, dct={}): a = super(UpperAttrMetaclass, cls).__new__(cls, name, l, dct) return a b = UpperAttrMetaclass('hehe',(test1,),{})(3) 会报错如下:TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases 如果将test1中的__metaclass__ = ABCMeta去掉就能运行。但是如果不去掉如何 解决呢?(因为需要在程序运行时动态创建新类,继承类的种类和数量都是临时决定的)
实在解决不了再请教了:TypeError: unsupported operand type(s) for -: 'list' and 'int'
![图片说明](https://img-ask.csdn.net/upload/201912/07/1575713654_326318.png)![图片说明](https://img-ask.csdn.net/upload/201912/07/1575713668_751576.png) import pandas as pd import numpy as np from numpy import * from GM11 import GM11 # 引入自己编写的灰色预测函数 data = pd.read_csv('D:\\软件\\python\\《Python数据分析与挖掘实战(张良均等)》中文PDF+源代码\\' '《Python数据分析与挖掘实战(张良均等)》中文PDF+源代码\\数据及代码\\chapter13\\test\\data\\data1.csv',engine='python') data.index = range(1994,2014) data data.loc[2014] = None data.loc[2015] = None h = ['x1', 'x2', 'x3', 'x4', 'x5', 'x7'] P = [] C = [] for i in h[:2]: gm = GM11(data[i][:-2].values)[0] # 利用返回的灰色预测函数,仅和对对应期数及位置有关 f = gm([0])##获得灰色预测函数 P = gm[-1]# 获得小残差概率 C = gm[-2] # 获得后验比差值 data[i][2014] = f(len(data) - 1) data[i][2015] = f(len(data)) data[i] = data[i].round(2) if (map(int,C) < 0.35 and map(int,P) > 0.95): # 评测后验差判别 print( '对于模型%s,该模型精度为---好' % i) elif (map(int,C) < 0.5 and map(int,P) > 0.8): print('对于模型%s,该模型精度为---合格' % i) elif (map(int,C)< 0.65 and map(int,P) > 0.7): print('对于模型%s,该模型精度为---勉强合格' % i) else: print('对于模型%s,该模型精度为---不合格' % i) data[h + ['y']].to_excel('D:\\软件\\python\\《Python数据分析与挖掘实战(张良均等)》中文PDF+源代码\\' '《Python数据分析与挖掘实战(张良均等)》中文PDF+源代码\\数据及代码\\chapter13\\test\\data\\2_1_2_1greyPredict(最新5).xlsx') ``` ```
Python初学者:TypeError
# -*- coding: utf-8 -*- print ("你好") print("what is your name \nTom") number_list=[1,2,3,4] print("number list="+str(number_list)) # string_list=["abd","bbc","python"] string_list = ["abc", "bbc", "python"] print("string_list="+string_list) TypeError: Can't convert 'list' object to str implicitly
就剩这个问题没解决了:TypeError: 'function' object is not subscriptable拜托请教大家!
![图片说明](https://img-ask.csdn.net/upload/201912/07/1575709842_231822.png)![图片说明](https://img-ask.csdn.net/upload/201912/07/1575709860_77315.png) import pandas as pd import numpy as np from GM11 import GM11 # 引入自己编写的灰色预测函数 data = pd.read_csv('D:\\软件\\python\\《Python数据分析与挖掘实战(张良均等)》中文PDF+源代码\\' '《Python数据分析与挖掘实战(张良均等)》中文PDF+源代码\\数据及代码\\chapter13\\test\\data\\data1.csv',engine='python') data.index = range(1994,2014) data data.loc[2014] = None data.loc[2015] = None h = ['x1', 'x2', 'x3', 'x4', 'x5', 'x7'] P = [] C = [] for i in h: gm = GM11(data[i][:-2].values)[0] # 利用返回的灰色预测函数,仅和对对应期数及位置有关 f = gm([0] ) ##获得灰色预测函数 P = gm[-1] # 获得小残差概率 C = gm[-2] # 获得后验比差值 data[i][2014] = f(len(data) - 1) data[i][2015] = f(len(data)) data[i] = data[i].round(2) if (C < 0.35 and P > 0.95): # 评测后验差判别 print( '对于模型%s,该模型精度为---好' % i) elif (C < 0.5 and P > 0.8): print('对于模型%s,该模型精度为---合格' % i) elif (C < 0.65 and P > 0.7): print('对于模型%s,该模型精度为---勉强合格' % i) else: print('对于模型%s,该模型精度为---不合格' % i) data[h + ['y']].to_excel('D:\\软件\\python\\《Python数据分析与挖掘实战(张良均等)》中文PDF+源代码\\' '《Python数据分析与挖掘实战(张良均等)》中文PDF+源代码\\数据及代码\\chapter13\\test\\data\\2_1_2_1greyPredict(最新5).xlsx') 补充: gm为自定义函数: def GM11(x0): #自定义灰色预测函数 import numpy as np x1 = x0.cumsum() #1-AGO序列 z1 = (x1[:len(x1)-1] + x1[1:])/2.0 #紧邻均值(MEAN)生成序列 z1 = z1.reshape((len(z1),1)) B = np.append(-z1, np.ones_like(z1), axis = 1) Yn = x0[1:].reshape((len(x0)-1, 1)) [[a],[b]] = np.dot(np.dot(np.linalg.inv(np.dot(B.T, B)), B.T), Yn) #计算参数 f = lambda k: (x0[0]-b/a)*np.exp(-a*(k-1))-(x0[0]-b/a)*np.exp(-a*(k-2)) #还原值 delta = np.abs(x0 - np.array([f(i) for i in range(1,len(x0)+1)])) C = delta.std()/x0.std() P = 1.0*(np.abs(delta - delta.mean()) < 0.6745*x0.std()).sum()/len(x0) return f, a, b, x0[0], C, P #返回灰色预测函数、a、b、首项、方差比、小残差概率
Python 3.7 使用sorted()函数对列表进行不区分大小写排序时出现TypeError: lower() takes no arguments (1 given)
在使用sorted()函数做练习时,分别定义了两个函数ording1()和ording2(),区别是ording1()中用于排序的列表是通过split()函数生成的,ording2()函数中的列表是直接用的字面值。最终都是使用sorted(str_list, key=str.lower) 函数对 list进行排序,执行ording2()时,系统正常输出,但是执行以ording1()时却遇到了以下错误信息:TypeError: lower() takes no arguments (1 given),不太理解这是什么原因导致的。 ``` def ording1(): str = "This is a test string from Andrew" str_list = str.split() print(type(str_list)) print(str_list) print(sorted(str_list, key=str.lower)) def ording2(): str_list = ['This', 'is', 'a', 'test', 'string', 'from', 'Andrew'] print(type(str_list)) print(str_list) print(sorted(str_list, key=str.lower)) ``` 执行ording1()函数时出现以下错误 ``` print(sorted(str_list, key=str.lower)) TypeError: lower() takes no arguments (1 given) ``` 执行ording1()函数时,显示正常 ``` <class 'list'> ['This', 'is', 'a', 'test', 'string', 'from', 'Andrew'] ['a', 'Andrew', 'from', 'is', 'string', 'test', 'This'] ```
python3使用imshow函数出现错误TypeError: Expected cv::UMat for argument 'mat'怎么改?
def show(self, frame): cv2.imshow(self._windowName, frame) ``` ``` 是什么原因呢?感觉imshow要的两个参数都有了,网上好像很少人遇到这个问题,没有搜到可解决的方案
关于pyside2在pycharm中运行出错 app = QApplication(sys.argv) TypeError: 'NoneType' object is not callable?
在pycharm中运行这段报错: ``` import sys from PySide2.QtWidgets import QApplication, QLabel print(sys.argv) app = QApplication.instance() if app == None: app = QApplication(sys.argv) # QLabel组件用于显示文本 label = QLabel("<font color=red size=40>Hello World!</font>") label.show() app.exec_() ``` ``` Traceback (most recent call last): File "E:/工作/copy2/Test.py", line 7, in <module> app = QApplication(sys.argv) TypeError: 'NoneType' object is not callable ``` 但是在python编译器里面就不会报错,求指点?
[Vue warn]: Error in beforeDestroy hook: "TypeError: Cannot read property '$parent' of null"
[Vue warn]: Error in beforeDestroy hook: "TypeError: Cannot read property '$parent' of null"
报错TypeError: object NoneType can't be used in 'await' expression?
asyncio异步编程,给字典赋值,总是提示NoneType。 完整代码如下 ``` import asyncio import time hs={} def asy(): #asynchronous start=time.perf_counter() def fn(i): hs[i]=i**9 async def fastdofn(i): await fn(i) tasks=[asyncio.ensure_future(fastdofn(i)) for i in range(10)] loop = asyncio.get_event_loop() loop.run_until_complete(asyncio.wait(tasks)) print(hs) print('runtime : {}'.format(time.perf_counter()-start)) asy() ``` 运行结果: ``` {0: 0, 1: 1, 2: 512, 3: 19683, 4: 262144, 5: 1953125, 6: 10077696, 7: 40353607, 8: 134217728, 9: 387420489} runtime : 0.049445499999999976 Task exception was never retrieved future: <Task finished coro=<asy.<locals>.fastdofn() done, defined at C:\Users\QQ\Desktop\ls\py\异步.py:9> exception=TypeError("object NoneType can't be used in 'await' expression")> Traceback (most recent call last): File "C:\Users\QQ\Desktop\ls\py\异步.py", line 10, in fastdofn await fn(i) TypeError: object NoneType can't be used in 'await' expression ``` 报错了10次 很奇怪的是,hs正常打印,而且达到了预期要求。为什么还会循环报错? 报错的问题解决了,但更懵了 ``` import asyncio import time hs={} def asy(): #asynchronous start=time.process_time() def fn(i): hs[i]=i**9 async def fastdofn(i): fn(i) tasks=[asyncio.ensure_future(fastdofn(i)) for i in range(100000)] loop = asyncio.get_event_loop() loop.run_until_complete(asyncio.wait(tasks)) print(hs[9]) ti=time.process_time()-start#time interval print('asy runtime : {}'.format(ti)) return ti def syn(): #synchronization start=time.process_time() def fn(i): hs[i]=i**9 for i in range(100000): fn(i) print(hs[9]) ti=time.process_time()-start print('syn runtime : {}'.format(ti)) return ti def main(): l1=[] l2=[] for i in range(1,11): print('{}th time'.format(i)) asy() syn() print('\n') #print('asy is {} times faster than syn'.format(sum(l2)/sum(l1))) main() ``` 异步不应该比同步快么,怎么还慢了这么多? ![图片说明](https://img-ask.csdn.net/upload/201911/01/1572603413_578211.png)
大分辨率(12800*3540)的屏幕在chorme使用Cesium时发生报错,求帮助。
## 首先感谢点进来的大佬们! 在使用Cesium时遇到一个问题,就是当我在大分辨率(12800*3540)的屏幕上使用Cesium时会出现报错的情况,下面是具体的报错信息: ``` TypeError: Failed to execute 'shaderSource' on 'WebGLRenderingContext': parameter 1 is not of type 'WebGLShader'. ``` 在网上查询过相关的报错信息,尝试过解决的过程: 1、有说的比较多的一种解决方案就是打开chrome里的“使用硬件加速模式”,但是尝试过了却还是依然会发生这种错误; 2、第二种就是在chrome浏览器地址中输入chrome://flags,进去之后选择Override software rendering list 启用这个选项并且重启浏览器,但是还是没能成功的解决问题; 3、尝试过的另外一种办法是将浏览器的缩放大小放大到200%,在这种情况下运行cesium是可以成功运行的,没有出现报错的情况,而且将浏览器放得越大加载3DTile等数据就会越快,但是这始终不是一个完美的解决方案; 4、还有一种情况下cesium是不会发生错误的,那就是当浏览器窗口不是最大化的时候使用cesium,这时也不会出现这种报错情况,但是这也没办法解决根源上的问题; 5、根据目前所收集到的资料,目前猜测是因为浏览器GPU进程被撑爆所导致的,但仅仅是猜测没有办法证实,还没有找到类似的可以解决该问题的方案,不知道是否跟设备的显卡有关系,还有待考察。 **尝试解决过,但是还是没办法解决该问题。在这寻求大佬们的帮助,有知道相关情况的麻烦告诉下,感激不尽~**
angularjs报错:XXX.inject is not a function
查了一圈,网上都是其他的XXX is not a function,他们的说是根模块禁止$监听 我在制作图片滚播时,在vscode里不会报错,但是在chrome里开发者工具提示我如下错误,并且图片也是竖直排列,并没有轮播。 backend.js:32708 Uncaught TypeError: rootNgProbe.inject is not a function at Angular2Adapter._trackAngularChanges (backend.js:32708) at Angular2Adapter.setup (backend.js:32704) at Object.<anonymous> (backend.js:33421) at __webpack_require__ (backend.js:20) at Object.<anonymous> (backend.js:47) at __webpack_require__ (backend.js:20) at backend.js:40 at backend.js:43 代码片段如下: css: ``` .container { position: relative; overflow: hidden; } .container.image-slider { display: flex; overflow-x: scroll; } .nav-section { position: absolute; bottom: 0; width: 100%; opacity: 0.5; color: #fff; background-color: #000; display: flex; justify-content: flex-end; align-items: stretch; } .nav-section.slide-button { display: flex; width: 10px; height: 10px; background-color: #fff; text-decoration: none; border-radius: 50%; margin: 5px; } ``` html: ``` <div class="container"> <div class="image-slider"> <img *ngFor="let slider of sliders" [src]="slider.imgUrl" [alt]="slider.caption"> </div> <div class="nav-section"> <span *ngFor="let _ of sliders; let idx = index" class="slide-button"> </span> </div> </div> ``` ts: ``` import { Component, OnInit, Input, ViewChild, ElementRef } from '@angular/core'; export interface ImageSlider { imgUrl: string; link: string; caption: string; } @Component({ selector: 'app-image-slider', templateUrl: './image-slider.component.html', styleUrls: ['./image-slider.component.css'] }) export class ImageSliderComponent implements OnInit { @Input() sliders: ImageSlider[] = []; constructor() { } ngOnInit() { } } ```
python中调用sha3_256进行hash时报错需要buffer API,怎么解决?
代码如下: hash_result = hashlib.sha3_256(encode(str(header) + str(nonce))).hexdigest() 报错信息如下: TypeError: object supporting the buffer API required 请问如何解决这个问题?
Kafka实战(三) - Kafka的自我修养与定位
Apache Kafka是消息引擎系统,也是一个分布式流处理平台(Distributed Streaming Platform) Kafka是LinkedIn公司内部孵化的项目。LinkedIn最开始有强烈的数据强实时处理方面的需求,其内部的诸多子系统要执行多种类型的数据处理与分析,主要包括业务系统和应用程序性能监控,以及用户行为数据处理等。 遇到的主要问题: 数据正确性不足 数据的收集主要...
volatile 与 synchronize 详解
Java支持多个线程同时访问一个对象或者对象的成员变量,由于每个线程可以拥有这个变量的拷贝(虽然对象以及成员变量分配的内存是在共享内存中的,但是每个执行的线程还是可以拥有一份拷贝,这样做的目的是加速程序的执行,这是现代多核处理器的一个显著特性),所以程序在执行过程中,一个线程看到的变量并不一定是最新的。 volatile 关键字volatile可以用来修饰字段(成员变量),就是告知程序任何对该变量...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
有哪些让程序员受益终生的建议
从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个问题,希望能帮到大家,记得帮我点赞哦。 敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自由,如何在工作中游刃有余,这篇文章很长,但绝对是精品,记得帮我点赞哦!!!! 一腔肺腑之言,能看进去多少,就看你自己了!!! 目录: 在校生篇: 为什么要尽量进大厂? 如何选择语言及方...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
GitHub开源史上最大规模中文知识图谱
近日,一直致力于知识图谱研究的 OwnThink 平台在 Github 上开源了史上最大规模 1.4 亿中文知识图谱,其中数据是以(实体、属性、值),(实体、关系、实体)混合的形式组织,数据格式采用 csv 格式。 到目前为止,OwnThink 项目开放了对话机器人、知识图谱、语义理解、自然语言处理工具。知识图谱融合了两千五百多万的实体,拥有亿级别的实体属性关系,机器人采用了基于知识图谱的语义感...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
微信支付崩溃了,但是更让马化腾和张小龙崩溃的竟然是……
loonggg读完需要3分钟速读仅需1分钟事件还得还原到昨天晚上,10 月 29 日晚上 20:09-21:14 之间,微信支付发生故障,全国微信支付交易无法正常进行。然...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
YouTube排名第一的励志英文演讲《Dream(梦想)》
Idon’t know what that dream is that you have, I don't care how disappointing it might have been as you've been working toward that dream,but that dream that you’re holding in your mind, that it’s po...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
相关热词 基于c#波形控件 c# 十进制转十六进制 对文件aes加密vc# c#读取栈中所有的值 c# rsa256加密 好 学c# 还是c++ c# 和java的差距 c# curl网络框架 c# https证书请求 c# 中崎
立即提问