python跟其他语言的不同感受
来源:互联网 发布:风暴英雄 阿巴瑟 数据 编辑:程序博客网 时间:2024/04/30 11:22
我在学习python时,时不时地会拿它跟自己已经学会的语言做对比,想想他们之间的相同和不同的地方。以下就是我学习python感受到的不同或者
相同之处。
1.三重引号表示一个多行字符串。在开始与结束引号间的所有东西都被视为单个字符串的一部分,包括硬回车和其它的引号字符。
2.如果将两个分片索引全部省略,这将包括list的所有元素。但是与原始的list不同,它是原list的完全拷贝。
3.格式化字符串"%s=%s" % (k, v)
4.getattr的第三个参数是一个缺省返回值,也是就当getattr找不到要找的对象时,会返回的值
5.[elem for elem in li if len(elem) > 1]列表过滤,可以用很简洁的语法实现复杂的功能,但是我并不喜欢这种东西,因为主流的编程风格
是没有这种写法的,我宁愿多写点代码来实现同样的功能。
6.and-or技巧:在python里a and b or c的意义跟a?b:c一样,前提条件是b一定要是真,这个技巧我很不喜欢,我觉得根本没必要有这种技巧
存在。可能对于python老手来说这是个好东西,就像上面的列表过滤一样,可以让他们少写几行代码。不过我想说的是如果可以用多的代码段来
获得程序的可读性的话,我宁愿多写几行代码,多写几行代码真的那么难吗??
7.str(None)是'None'
8.判断一个变量是不是None,使用语法is None比==None更快
9.python的类不会自动去掉用父类的方法,即在子类的__init__函数中不会自动调用父类的__init__,所以你必须自己主动去调用父类的__init__
,调用的形式为: 父类名.__init__(self)。一种跟主流语法不一致的地方,It's sucks.
10.判断一个实例是不是一个类的实例:instance.__class__ is Classname,另外判断两个对象是不是同一个也可以使用is:instance1 is instance2
11.__getitem__和__setitem__使得你可以通过如下的方式来访问和修改类的成员值:className['attribute'],className['attribute']=something
12.当一个类被实例化的时候,它会沿着继承树去寻找__init__方法去调用,一旦找到一个后,便进行调用,寻找过程也就到此为止。
13.python专用方法:
__repr__(self):返回类的字符串表示,相当于java的toString()
__cmp__(self,arg):相当于c++重载==操作
__len__(self):返回类的长度,当使用len(class)时,会被调用
__delitem__(self,arg):当调用del item时,会被调用
14.python的私有方法是这样定义的:__functionName,私有属性也是这样定义的:__attribute ,oh,my god!
15.python的for循环要实现主流编程语言for循环是这样做的:
for i in range(len):
pass
真希望python提供主流编程语言的for循环写法,不过,现在的语言都提供了for。。。in。。。这样的语法,看来得改改写for循环的习惯了
16.os.listdir("d:/a//b")这样写是可以的,看来对/和/是可以混写,貌似主流的语言都可以哦
相同之处。
1.三重引号表示一个多行字符串。在开始与结束引号间的所有东西都被视为单个字符串的一部分,包括硬回车和其它的引号字符。
2.如果将两个分片索引全部省略,这将包括list的所有元素。但是与原始的list不同,它是原list的完全拷贝。
3.格式化字符串"%s=%s" % (k, v)
4.getattr的第三个参数是一个缺省返回值,也是就当getattr找不到要找的对象时,会返回的值
5.[elem for elem in li if len(elem) > 1]列表过滤,可以用很简洁的语法实现复杂的功能,但是我并不喜欢这种东西,因为主流的编程风格
是没有这种写法的,我宁愿多写点代码来实现同样的功能。
6.and-or技巧:在python里a and b or c的意义跟a?b:c一样,前提条件是b一定要是真,这个技巧我很不喜欢,我觉得根本没必要有这种技巧
存在。可能对于python老手来说这是个好东西,就像上面的列表过滤一样,可以让他们少写几行代码。不过我想说的是如果可以用多的代码段来
获得程序的可读性的话,我宁愿多写几行代码,多写几行代码真的那么难吗??
7.str(None)是'None'
8.判断一个变量是不是None,使用语法is None比==None更快
9.python的类不会自动去掉用父类的方法,即在子类的__init__函数中不会自动调用父类的__init__,所以你必须自己主动去调用父类的__init__
,调用的形式为: 父类名.__init__(self)。一种跟主流语法不一致的地方,It's sucks.
10.判断一个实例是不是一个类的实例:instance.__class__ is Classname,另外判断两个对象是不是同一个也可以使用is:instance1 is instance2
11.__getitem__和__setitem__使得你可以通过如下的方式来访问和修改类的成员值:className['attribute'],className['attribute']=something
12.当一个类被实例化的时候,它会沿着继承树去寻找__init__方法去调用,一旦找到一个后,便进行调用,寻找过程也就到此为止。
13.python专用方法:
__repr__(self):返回类的字符串表示,相当于java的toString()
__cmp__(self,arg):相当于c++重载==操作
__len__(self):返回类的长度,当使用len(class)时,会被调用
__delitem__(self,arg):当调用del item时,会被调用
14.python的私有方法是这样定义的:__functionName,私有属性也是这样定义的:__attribute ,oh,my god!
15.python的for循环要实现主流编程语言for循环是这样做的:
for i in range(len):
pass
真希望python提供主流编程语言的for循环写法,不过,现在的语言都提供了for。。。in。。。这样的语法,看来得改改写for循环的习惯了
16.os.listdir("d:/a//b")这样写是可以的,看来对/和/是可以混写,貌似主流的语言都可以哦
- python跟其他语言的不同感受
- python读写不同编码的文件--其他语言类似
- 初学python,感受和C的不同
- 跟项目的感受
- javascript 跟 强类型语言不同的特性
- 想实现日期为当天的时候,显示的日期颜色跟其他的不同
- 其他语言无法比拟的Python特性
- Python和和其他语言的对比
- Python的与其他语言的不同
- python学习的感受
- 跟销售一起跟客户讨论项目的感受
- 为什么说php是弱类型好学,跟其他语言的区别
- C语言中static变量、函数跟其他变量、函数的区别
- javascript语言中的左花括号和其他语言的位置不同的原因之一
- 微软跟我们的不同
- HTML 跟 XHTML的不同
- find_or_initialize_by 跟 find_or_create_by的不同
- 同样的一辈子,不同的感受
- 审稿费交了
- 报表数据动态生成页面
- 君知否,“黑洞”乃是数学没玩好的产物
- Javascript----文件操作
- asp.net向文本文件(txt)指定行(第n行)插入数据
- python跟其他语言的不同感受
- Struts-config.xml配置文件讲解
- 键盘各键对应的ASCII码值
- 决定高薪必要的细节守则
- Ilog、Drools、Jess规则引擎的Rule Language 对比
- pd12.5建表出错提示不允许有扩展属性的处理
- javaBean
- CSDN第一期总结之三:Thread的问题
- OpenH323 Gatekeeper - The GNU Gatekeeper 使用手册