python 对比学习
python和java面向对象的不同
1.属性和方法
java中类的属性(static)除外,对象全部独立拥有;
而python中类的属性,其实例对象一个字段都没有.底层是这么搞的: 对象object获取属性时,如果自己没有并不报错,而是去类中找,找不到才报错.
方法和java一样,普通的方法是对象的,要申明为类的静态方法必须使用@classmethod来表示是类的静态变量
2.构造方法:
java可以有多个,更加参数的多少决定
而python没有方法重载,故没有多个构造方法
一。小知识点:
1.python没有contains,使用find返回查到的元素的位置(只查一个符合的)
2.python的数组和集合添加元素不是add,使用append(快速构建list可是使用range(10) = [0,1,2,3,4,5,6,7,8,9])
3.python的set添加元素add,删除元素remove(和java一样)
4.fn(*x) x表示一个tuple; 而 fn(**x) x表示一个字典,而且对该字典you要求,key必须为str,同时fn(**x)还有个特殊写法,直接给x=xxx,y=xxx,简直太牛逼了。
5.高阶函数一般用这种log('info'),包含了一个参数的装饰器。 首先不带参数的装饰器(2阶即可):
第一阶:修饰的形参函数, 第二阶:函数的参数
def log1(fn): #fn:装饰的函数
def wapper(*args,**kw): #fn的参数
print 'log1日志:'
return fn(*args, **kw)
return wapper
@log1
def mytest(**kw):
sys.stdout.write('mytest函数执行,参数为:')
for x,y in kw.items():
sys.stdout.write(str(x) + ':' + str(y) + ', ')
但是如果包含了参数的,则需要三阶。 第一阶:装饰器所带参数作为形参,第二阶:修饰的形参函数, 第三阶:函数的参数
def log(txt):#一阶txt是自己的参数
def wapper(fn): #二阶这里拿到装饰函数的形参fn
def wapper2(*args,**kw): #三阶拿到装饰函数的参数
sys.stdout.write(txt+'级别日志:')
return fn(*args, **kw)
return wapper2
return wapper
@log('info')
def test(**kw):
sys.stdout.write('test函数执行,参数为:')
for x,y in kw.items():
sys.stdout.write(str(x) + ':' + str(y) + ', ')
test(x=1,y=2)
6.django总update和insert都可以通过save方法实现,到底是insert还是update,默认通过主键是否有值来判断。 如果我们确认只需要insert,则使用 对象.save(force_insert=true,using='哪个数据库');
如果我们确认只需要update,则使用 对象.save(force_update=True,update_fields=['aaa','bbb'])
python 对比学习的更多相关文章
- lua、python对比学习
一.基本数据类型: lua: nil(空).boolean(false和nil为假).number(数值).string(字符串).table(表).function(方法).thread (线程) ...
- 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...
- python爬虫学习(1) —— 从urllib说起
0. 前言 如果你从来没有接触过爬虫,刚开始的时候可能会有些许吃力 因为我不会从头到尾把所有知识点都说一遍,很多文章主要是记录我自己写的一些爬虫 所以建议先学习一下cuiqingcai大神的 Pyth ...
- Day1 Python基础学习
一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...
- 利用python深度学习算法来绘图
可以画画啊!可以画画啊!可以画画啊! 对,有趣的事情需要讲三遍. 事情是这样的,通过python的深度学习算法包去训练计算机模仿世界名画的风格,然后应用到另一幅画中,不多说直接上图! 这个是世界名画& ...
- Day1 Python基础学习——概述、基本数据类型、流程控制
一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...
- Python Tkinter 学习成果:点歌软件music
笔者工作业余时间也没什么爱好,社交圈子也小,主要娱乐就是背着自己带电瓶的卖唱音响到住地附近找个人多的位置唱唱KtV. 硬件上点歌就用笔记本电脑,歌曲都是网上下载的mkv格式的含有两个音轨的视频.因此点 ...
- 对比java和python对比
对比java和python 对比java和python 2011年04月18日 1.难易度而言.python远远简单于java. 2.开发速度.Python远优于java 3.运行速度.java远优于 ...
- 参考分享《Python深度学习》高清中文版pdf+高清英文版pdf+源代码
学习深度学习时,我想<Python深度学习>应该是大多数机器学习爱好者必读的书.书最大的优点是框架性,能提供一个"整体视角",在脑中建立一个完整的地图,知道哪些常用哪些 ...
随机推荐
- 学习apache commons lang3的源代码 (2):RandomStringUtils
本文,主要是分析类;RandomStringUtils. 下面这个方法的:count:表示要生成的数量(比如4个字符组成的字符串等) start,end,表示限定的范围,比如生成ascii码的随机等. ...
- CentOS7配置阿里云yum源和EPEL源
配置阿里云yum源(参考:http://mirrors.aliyun.com/help/centos) 1.备份 [root@bogon ~]# cd /etc/yum.repos.d/ [root@ ...
- css项目列表如何水平放置
列表项目默认分行排列,那么将列表项设置浮动就可以实现水平放置 1 li{float:left;} 示例如下: 创建Html元素 1 2 3 4 5 6 <ul> <li> ...
- Servlet 调用过程
上图的大概意思: 前台输入访问路径后,浏览器会去访问本地的host文件查询有木有与之匹配域名的IP地址,若无则在访问DNS服务器查询与之匹配的IP地址.解析IP后则开始发起HTTP请求,根据请求中的基 ...
- System Center VMM请注意不同语言版本的差异
在私有云的项目中,经常需要判断System Center一些组件的连接是否OK. 我这里有开发,和测试两个环境,开发是英文版的System Center VMM,测试用的是中文版的System Cen ...
- Wannafly挑战赛17 A 走格子【矩阵行走/模拟】
[链接]:A [分析]:可以设置方向数组和标记数组.当不合法(越界/访问过)就转向,转向可以用now=(now+1)%4 [代码]: #include <bits/stdc++.h> #d ...
- HDU 1558 Segment set(并查集)
题意: 给你一些线段的起点和终点的坐标,最后问和某个线段相连的或者间接相连的线段有多少个(包括本身)? P X1 Y1X2 Y2 起点(X1,X2)终点(X2,Y2):按照出现次数依次编号为1,2, ...
- POJ1325Machine Schedule(匈牙利算法)
Machine Schedule Time Limit: 1000MS Memory L ...
- Java加密解密大全
ChinaSEI系列讲义(By 郭克华) Java加密解密方法大全 如果有文字等小错,请多包涵.在不盈利的情况下,欢迎免费传播. 版权所有.郭克华 本讲义经 ...
- 【枚举】bzoj1800 [Ahoi2009]fly 飞行棋
暴力枚举. #include<cstdio> #include<algorithm> using namespace std; ],sum[],half,ans; int qu ...