python中的类 type这个方法有什么用? 首先纠正一个错误,type并非一个方法,而是一个类(扎心了老铁)。 >>> type(dict) <class 'type'> >>> type(type) <class 'type'> >>> type(object) <class 'type'> 很奇怪的一个现象,似乎所有类都是type类,不是说所有类都是从object继承来的啊,为什么连object自己都是type类型呢? 这要归功于Python是一种解释型语言,并非像C++,Java一样属于编译型语言,在编译型语言中,要在静态语言运行期创建类,必须构造源代码字符串再调用编译器,或者借助一些工具生成字节码实现。而动态语言,则是在运行期间创建类,那么怎么创建类,其实就是用的type。 定义类的两种方法 # 直接定义 class Hello(object): 'Hello' 继续阅读 >>


李余通 18/03/31 21:16:43
c++里初始化静态、非静态,const以及引用的数据成员各不相同 静态成员初始化 class a { private: static int i1 = 1; //错误 static int i2; //应该这么做 static const int i3 =2; //正确 int i4 = 1; //正确 }; int a::i2 = 1; //在这里定义   总结一下,在类里面的静态数据成员,只有常量可以在类内定义,非常量的静态数据成员统一都在类内声明,类外定义   声明只是告诉编译器他的类型,定义时才分配内存空间   因为静态成员是类级别的,不是对象级别的,它的生存周期和源程序等同,为类所有的对象共享,所以如果在类里面就能定义分配内存空间,那么每一个对象被创建时都会分配一次内存,显然是不合理的,所以就放在类外,只分配一次内存空间   而至于常量静态数据成员,编译器知道他是一个常量,不会发生改变,所以可以在类内定义初始化   (小知识:一个变量只有可以拥 继续阅读 >>


吕子健 18/03/30 11:37:12
循环 这个比较好像,不停的去读文件,读到就打印出来 f = open('a','r') print(f.read(),end='') while True: try: print(f.read(),end='') except KeyboardInterrupt: f.close() break CPU占用100%,不是一个好的选择。 select、poll 一直以来,对select和poll的用法局限于套接字,实际上,只要是文件描述符,都可以监控。 select import select f = open('a','r') while True: try: rs, ws, es = select.select([f, ], [], []) for i in rs: buf = i.read() print(buf, end='') 继续阅读 >>


李余通 18/03/28 22:29:31
背景 出处:2018今日头条实习生笔试题4 原因是我的代码通过率只有30%提示时间超限,但是没时间去修改了,所以很不甘心,写出优化后的代码。 magic操作 给一个包含n个元素的集合a和包含m个元素的集合b,定义一magic种操作,从一个集合中取出一个元素放入另一个集合中,使得两个集合的平均值都变大了。问一共可以进行多少次magic操作。 分析 要达到magic操作,那么取出的这个元素,必须是小于要取出集合的平均值(这样取出后集合的平均值才会变大),而且必须大于要放进的集合的平均值(这样放进一个元素后集合的平均值才会变大),而且该元素不能是属于要放进元素的集合(因为集合的特殊型,不能有重复元素,放入重复元素,集合的平均值不该变)。 代码 # coding=utf-8 import sys (m,n) = sys.stdin.readline().split() m = int(m) n = int(n) lm = [int(i) for i in sys.stdin.r 继续阅读 >>


李余通 18/03/25 14:23:25
最长递增子序列的数量 出处:今日头条内推一面编程题 题目:有一个无序数组,现需要你找到最长的递增的子序列的个数。 eg1: 1 2 4 3 5 最长的递增子序列是 1 2 4 5 和 1 2 3 5,所以应输出2。 eg2:1 1 1 1 1 输出5,即是5个长度为1 的 1 思路 我们从数组下标为0开始,0下标时,包含当前位置的最大长度只能是1,并且次数是1,下标为1时,包含1下标的最长递增序列需要和0位去比较,a[1]> a[0]那么自然会将长度更新为2,出现的次数赋初值1,若小于或者的等于,那么包含1下标的字串就是a[1]本身,最长为1,出现次数为1,然后按照这种方式去判断之后的下标。 这个,很明显是要用到动态规划的思路,而且这个不是简单的DP,但前位置的结果,不单单由他前一位去决定,而是由其前面所有来决定,那么整理下思路: 用 a[] = 1 2 4 3 5 来举例。 现在需要一个辅助数组a_t[2][len(a)]。这个数组的第一行,存的是以该下标位置的数字 继续阅读 >>


李余通 18/03/25 11:00:43
无锁队列的实现-coolshell CAS 另一篇参考 设计不使用互斥锁的并发数据结构 锁粒度 作者:Tanswer_ 发表于 2018/03/24 13:20:09 原文链接 https://blog.csdn.net/Tanswer_/article/details/79677069 阅读:137 评论:1 查看评论 继续阅读 >>


杜肖孟 18/03/24 13:20:09
借鉴这里的SQL用法,挺全面的:MySQL 【去重留一】一条sql语句完成 思路总结 背景,CSDN网站最近好像在做 http 到 https 的转换,所以之前写的群博中本身博客唯一标示的 url 就出现了变化,导致数据库中存在重复的博客内容 解决办法 先贴下SQL delete T_blog from T_blog, (select Title from T_blog where BlogArticleLink like 'https://blog.csdn.net%') as t2 where T_blog.Title = t2.Title and (BlogArticleLink like '//blog.csdn.net%' or BlogArticleLink like 'http://blog.csdn.net%'); 其实就是从T_blog表中删除标题相同的但博客链接又有差别的重复行 上面用的SQL之前没用过的是直接使用select语句又得到了一个新的临 继续阅读 >>


朱新全 18/03/24 10:52:15
前几天把项目部署到阿里云上,能够让其他用户访问自己写的小东西。 但是一般访问的格式是 服务器ip:8080/项目名 这样显然有些麻烦,可以通过修改Tomcat的默认端口来解决。 打开Tomcat的安装文件夹: 1、进入conf,编辑server.xml 找到如下标签,将port设置为80 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 找到Host标签,像如下加入Context标签,doBase为项目所在的位置 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context path="" docBase 继续阅读 >>


李猛 18/03/22 23:22:40
一:区块链是什么? 区块链(Blockchain)是由节点参与的分布式数据库系统,它的特点是不可更改,不可伪造!! 在比特币的世界里来说,就是一个记账本 。记录了其代币(token)的每一笔交易。通过这些信息,我们可以找到每一个地址,在历史上任何时刻所拥有的价值 。 区块链是由一串使用密码学方法产生的数据块组成的 ,每一个区块都保存了上一个区块的哈希值,从而连成一条链。也正因为如此,每一个区块都得确保按照时间顺序在上一个区块之后产生,否则前一个区块的哈希值就是未知的,对吧? 那么来举个例子吧 ! ! 比如,我邀请了几个产业界、金融界和财经界的权威人物组建了一个共享交流朋友圈,这个朋友圈的建立用的是区块链技术,也就是大家都有交流的终端应用,但数据不会像微信一样必须通过腾讯公司,而都是个人与个人之间的通讯硬件和软件上传输交流。这个朋友圈设立了一个规则,就是初始邀请的100位人士,各自拥有1个席位,未来每年只能增加5个席位。这个朋友圈用的是独特的加密技术,以至于其中的聊天文件不会被监 继续阅读 >>


刘生玺 18/03/22 22:02:12
针对中国软件杯有关区块链的项目,记录一下了解学习的过程   官方说法区块链是:分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。      按照我的理解翻译一下   区块链就是一个使你不需要第三方信任凭证的数据结构.比如:在小组内,我现在和A赌球,他赌今年总冠军是火箭,我坚信湖人总冠军.我们赌了40,但是我们都信不过对方,于是交给中间人B.谁赢把钱给谁.但是也存在B(中心)卷钱跑了,所以我们有了区块链,不需要第三凭证人(中心),而是每一个人都是一个中心都有一个"账本",当我和A赌约成立后,小组内每个人的小账本上都记下了这个赌约,这样A就不能赖账了,以前他耍赖只需要贿赂B(中心),但现在他要改变小组内每一个人,所以当人群基数多起来后,基本是不肯能的,这就保障了区块链的信用可靠性.   所以说,区块链是我们每一个人都拥有一个按时间顺序关联成链记录交易(具体数据)的区块,通过一定的加密算法记录交易数据并使其不可逆      这样一来,我们的网络的服务器模型就是P2P模 继续阅读 >>


吕子健 18/03/20 22:25:33