脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - 一起来看看五条Python中的隐含特性

一起来看看五条Python中的隐含特性

2022-09-04 12:02赵卓不凡 Python

这篇文章主要为大家详细介绍了Python中的隐含特性,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

1. 引言

最近闲暇之余,我会去阅读一些Python文档,有时候会注意到一些有趣的Python特性,这些特性不禁让人惊呼:“哇,Python原来还可以这么写”。

闲话少说,我们直接开始吧。 :)

2. 函数属性

和设置类和对象的属性类似,我们在Python中也可以为函数设置属性。样例代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def func(x):
    intermediate_var = x**2 + x + 1
    if intermediate_var % 2:
        y = intermediate_var ** 3
    else:
        y = intermediate_var **3 + 1
    # setting attributes here
    func.optional_return = intermediate_var
    func.is_awesome = 'Yes, my function is awesome.'
    return y
y = func(3)
print('Final answer is', y)
# Accessing function attributes
print('Show calculations -->', func.optional_return)
print('Is my function awesome? -->', func.is_awesome)

观察上述代码,我们在第9行设置函数属性‘optional_return’在第10行设置属性’is_awesome’.同时,在最后两行的调用语句里我们访问了这两个函数属性的值。

上述代码的运行结果如下:

Final answer is 2197
Show calculations --> 13
Is my function awesome? --> Yes, my function is awesome.

当我们希望选择检查一些函数中的中间变量,但不想每次调用函数时使用 return 语句显式返回它时,上述函数属性的写法将会排上用场。

3. For-else循环

在 Python 中,我们可以在 for 循环中添加 else 语句。只有在执行期间在循环体中没有遇到 break 语句时才会触发 else 语句。样例代码如下:

?
1
2
3
4
5
6
7
8
my_list = ['some', 'list', 'containing', 'five', 'elements']
min_len = 3
for element in my_list:
    if len(element) < min_len:
        print(f'Caught an element shorter than {min_len} letters')
        break
else:
    print(f'All elements at least {min_len} letters long'

上述代码输出如下:

All elements at least 3 letters long

观察上述代码,else 在 for 级别缩进,而不是在 if 级别缩进。在这里,没有任何元素的长度小于 3。因此,将永远不会遇到 break 语句。因此,else 子句将被触发(在执行 for 循环之后)并打印上面显示的输出。

4. int型分隔符

一般来说,从视觉效果上看人眼很难分辨出数字10000000 和100000000 ,在Python中我们不能像英语那样直接使用逗号分隔符来将数字隔开,这是因为Python会将逗号分隔开的数字解释为多个整数的元组。

但是,Python也有一种方便的方式来处理这种情形:我们可以使用下划线当做分隔符来提升数字的可读性,此时数字1_000_000将被解释成整形数字并增加了可读性。

代码样例如下:

?
1
2
3
4
5
a = 3250
b = 67_543_423_778
print(type(a))
print(type(b))
print(type(a)==type(b))

运行结果如下:

<class 'int'>
<class 'int'>
True

5. eval() and exec()

Python 具有动态读取字符串并将其视为一段 Python 代码的能力。这主要是通过使用 eval() 和 exec() 函数来实现的(“eval”用于评估表达式,“exec”用于执行语句)。

代码举例如下:

?
1
2
3
4
5
a = 3
b = eval('a + 2')
print('b =', b)
exec('c = a ** 2')
print('c is', c)

运行结果如下:

b = 5
c is 9

上述代码中,eval() 函数将输入字符串作为 Python 表达式读取,对其求值,并将结果分配给变量“b”。同时,exec() 函数将输入字符串作为 Python 语句读取并执行。

6. 省略号

省略号或“…”是 Python 的内置常量,类似于 None、True、False 等内置常量。它可以以不同的方式使用,包括但不限于:

6.1 占位符

和 pass 类似,省略号可以在代码没有写完整的时候用作占位符,举例如下:

?
1
2
3
4
def some_function():
    ...
def another_function():
    pass

6.2 numpy数组中用于切片

NumPy中使用省略号可以对数组进行切片。以下代码显示了对 NumPy 数组进行切片的两种等效方法:

?
1
2
3
4
import numpy as np
a = np.arange(16).reshape(2,2,2,2)
print(a[..., 0].flatten())
print(a[:, :, :, 0].flatten())

结果如下:

[ 0  2  4  6  8 10 12 14]
[ 0  2  4  6  8 10 12 14]

7.总结

Python 不仅是一门有用的语言,而且是一门非常有趣的语言。我们都忙于生活工作,但为了更好地了解语言本身的一些特性并没有什么坏处。在本文中,重点介绍了5个Python中隐含的特性,并给出了相关代码的讲解。

 本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注服务器之家的更多内容!   

原文链接:https://blog.csdn.net/sgzqc/article/details/122691748

延伸 · 阅读

精彩推荐
  • Python一日一技:在 Python 中实现延迟调用

    一日一技:在 Python 中实现延迟调用

    熟悉 Golang 的同学都知道,Golang 里面有一个关键词叫做defer,它可以实现延迟调用。实际上在 Python 里面也有相关的语法,那就是contextlib.ExitStack。...

    未闻Code6892021-07-28
  • PythonPython中逗号的三种作用实例分析

    Python中逗号的三种作用实例分析

    这篇文章主要介绍了Python中逗号的三种作用,实例分析了Python中的逗号在类型转换与打印输出时的使用技巧,需要的朋友可以参考下...

    liuzx3213192020-07-14
  • Pythonwindows下python之mysqldb模块安装方法

    windows下python之mysqldb模块安装方法

    这篇文章主要介绍了windows下python之mysqldb模块安装方法,需要的朋友可以参考下 ...

    loleina4922020-12-06
  • PythonPython遍历目录的4种方法实例介绍

    Python遍历目录的4种方法实例介绍

    这篇文章主要介绍了Python遍历目录的4种方法实例介绍,本文讲解了使用os.popen运行shell列表命令、利用glob模块、利用os.listdir(推荐)、利用os.walk(推荐)等4种方...

    脚本之家7162020-06-05
  • PythonTensorFlow实现RNN循环神经网络

    TensorFlow实现RNN循环神经网络

    这篇文章主要介绍了TensorFlow实现RNN循环神经网络,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    ChenVast11462021-01-18
  • Pythonpython实现报表自动化详解

    python实现报表自动化详解

    这篇文章主要介绍了python实现报表自动化详解,涉及python读,写excel—xlwt常用功能,xlutils 常用功能,xlwt写Excel时公式的应用等相关内容,具有一定参考价...

    果710402020-12-18
  • PythonPython爬虫+Tkinter制作一个翻译软件的示例

    Python爬虫+Tkinter制作一个翻译软件的示例

    这篇文章主要介绍了Python爬虫+Tkinter制作一个翻译软件的示例,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下...

    酸菜鱼编程8402021-09-07
  • Pythonpython日期相关操作实例小结

    python日期相关操作实例小结

    这篇文章主要介绍了python日期相关操作,结合实例形式总结分析了Python针对日期时间的获取、转换、运算等相关操作技巧,需要的朋友可以参考下...

    轻舞肥羊11972021-07-19