zoukankan      html  css  js  c++  java
  • C程序员眼里的Python

    注释

    Phython的注释和C语言非常不同,第一种 #开头的注释,类似于C的//开头,而"""对 包围注释,类似于C的/* */,以及xml类的<!--    -->。#号注释也就算了,"""实在无语,不知道这种另辟蹊径有什么好,徒增学习成本。

    函数

    Python的函数(类方法)的定义比较奇葩,以def开头,接着函数名,参数列表,冒号,函数体内容需缩进,如下,对于C、Java系统出身的人,没有花括号,真是不习惯啊

    def funcname (params) :
    
      ......
    
      ......
    
      return ...
    

    函数能返回多个值

    在看Python代码时经常发现函数返回多个结果值的情况,翻了资料才知道,其实也是单值返回,只是返回的就是数组而已,唯一的差别在于Python可以定义多个变量接收返回值,这个确实方便

    下划线

    有的时候看到函数返回值用_接收,或 for _ in range的语句,查了资料,_表示临时性的变量等,我们不关心此变量的值,但语法上又不能缺少,大致如此,不求甚解

     [:num]及[num:]写法

    其中num是数组索引,如果是负数则从尾巴上数,-1表示最后一个元素,冒号表示分割,冒号在前,表示取索引前的所有元素,冒号在后,表示取索引所在位置及后面的所有元素。

    举例:

    >>> '123'[2:]
    '3'
    >>> '123'[:2]
    '12'

    类成员函数self参数

    python类成员函数与普通函数形式一致,但要求第一个参数为self,在C程序员眼里这个真是非常无聊的事情,默认提供一个this关键字不是更好吗

    字符串格式

    python的字符串格式,使用%操作符,举例说明:

    >>> a=1
    >>> b=2
    >>> '%d:%d' % (a, b)
    '1:2'

    非常简单,好用!

    函数的关键字参数

    函数的调用可以根据位置顺序来指定参数即位置参数,也可以根据参数名字来指定参数即关键字参数,使用关键字参数时,参数的位置无关,类似于JSON中的key;如果混合位置参数和关键字参数,那么,位置参数必须在前面,举例:

    >>> def myprint(name, age):
    ...     print 'name=%s age=%d' % (name, age)
    ... 
    >>> 
    >>> myprint('tom', 8)
    name=tom age=8
    >>> myprint(age=8, name='tom')
    name=tom age=8
    >>> myprint('tom', age=8)
    name=tom age=8

    在JavaScript编码中,经常会使用Object来传递参数,好处是参数非常灵活,Python的这种调用方式,在此基础上更跨一步。

    函数的属性变量

    在Python中一切皆对象,函数也是,所以可以通过函数名.变量名的方式来定义变量,如下:

    >>> def billux():
    ...     print 'hello'
    ... 
    >>> billux()
    hello
    >>> billux.v = 4.5
    >>> billux.v
    4.5
  • 相关阅读:
    List<T>Find方法,FindAll方法,Contains方法,Equals方法
    C#SerialPort如何读取串口数据并显示在TextBox上
    49、css属性相关
    40、协程
    45、mysql 储存过程
    37、进程之间的通信
    38、线程及其方法
    39、多线程和线程池
    33、验证客户端的合法性、socketserver模块
    32、黏包的解决方式、struct模块
  • 原文地址:https://www.cnblogs.com/billux/p/8990023.html
Copyright © 2011-2022 走看看