慢吞云雾缓吐愁 发表于 前天 14:42

python与C系列语言的差异总结(4)

假如具有传统编译型语言的经验,大家大概会对是否使用字典而心神不定,担心字典的服从比列表或数组低。事实上Python字典的执行速度已经相称快了。Python语言的许多内部特性都依赖于字典,为提高字典的服从已经投入了大量的心血。Python的全部数据结构都颠末了高度优化,因此不应该花太多时间去考虑哪个更快,哪个服从更高。
pass语句也可在Python中需要语句的其他任何地方使用。pass语句用作语句的占位符,但是它不执行任何操纵:
if x < 5:

    pass

else:

    x = 5
Python没有提供case(或switch)语句。阅读工作中的代码,可以发现Switch/case语句在现实开辟中使用频率确实很低。
与其他Python对象一样,函数也可以被赋值。函数可以被放入列表、元组或字典中。这个特性和C系列语言的函数指针雷同。不过用起来更加简约。真正将函数做到了对象一样。
在大多数其他语言采用case或switch语句的场所,Python可以用串联的if…elif…elif…else结构来很好地应对。假如遇到少少数棘手的场所,通常可用函数字典来解决,如下所示:
def do_a_stuff():

    #process a

def do_b_stuff():

    #process b

def do_c_stuff():

    #process

func_dict ={'a':do_a_stuff,

'b':do_b_stuff,

'c':do_c_stuff }

X = 'a'

func dict()

#运行字典中的函数
在使用变量之前,用global语句对其举行声明,可以显式地使其成为全局(global)变量。函数可以访问和修改全局变量。全局变量存在于函数之外,全部将其声明为全局变量的其他函数,以及函数之外的代码,也可以对其举行访问和修改。以下示例演示了局部变量和全局变量的差异:
def fun():

      global a

      a = 1

      b = 2
nonlocal语句与global语句雷同,它会让标识符引用最近的闭合作用域(enclosing scope)中已绑定的变量。
字符串的format函数可以实现雷同C系列语言的格式化功能。
python的函数内部还可以定义函数。
g_var =0

#inner_test 函数中的g_var 绑定为同名的顶级变量

nl_var =0

print("top level-> g_var: {0} nl_var: {1}".format(g_var, nl_var))

def test():

    nl_var = 2

    #inner_test函数中的nl_var 绑定为 test 函数中的同名变量

    print("in test-> g_var: {0} nl_var:{1}".format(g_var, nl_var))

    def inner_test():

      #inner_test g_var 绑定为同名的顶级变量

      global g_var

      #inner_test函数中的nl_var 绑定为test 函数中的同名变量

      nonlocal nl_var

      g_var =1

      nl_var =4

      print("inner_test-> g_var: {0} nl_var:{1}".format(g_var, nl_var))

    inner_test()

    print("in test->g_var: {0} nl_var:{1}".format(g_var, nl_var))

test()

print("top level-> g_var: {0} nl_var:{1}".format(g_var, nl_var))

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: python与C系列语言的差异总结(4)