除庄周梦蝶外,庄子还讲过哪些梦你知道吗?新故事引出新版本——

简介: 除庄周梦蝶外,庄子还讲过哪些梦你知道吗?新故事引出新版本——

除“庄周梦蝶”外,庄子另外还讲过哪些梦呢?你可知道?

41a1e5186d0d4c7f809fa0ce677afdd7.png


一、梦神木


《人世间》庄子述说了一个故事:


有个木匠,来到齐国曲辕,看到神庙里有一颗巨大的树。这棵树太大了,有一百围那么粗,好几丈高,来神庙参拜的人很多。


木匠来了后头也不看,只管走路,弟子就好奇地问,木匠解释说:


这大树是“散木”。做船会沉,做棺材会腐朽,做家具会坏,做门窗会潮,做柱子会虫蛀。百无一用,才能长这么大!

弟子们听后恍然大悟。


木匠回去后,做了一个梦。梦到大树对他说:


你把我比做那种所谓的无用木头,可是那些所谓的有用的树,果实成熟就被摘掉了,长高一点被剪掉。树木寿命原本很长,可是没过几年却枯死了,你希望我沦落到这样的下场吗?

大树意味深长地说:天下的事情,都是同理。我追求无用很久了,几经波折,差点被砍掉,如今终于修成如今的样子,如果我一开始就很有用,还能活到今天吗?


无用,才是大用啊!


大树最后又补充一句,说:你说我是散木,你又何不是散人呢?

这又是庄子假托木匠说的一个梦。


二、梦髑髅

《至乐》篇中,庄子梦见自己在去楚国的路上见到一具骷髅架。

庄子心血来潮,用马鞭敲了敲骷髅道:“先生,你是做了伤天害理的事吗?还是因为国破家亡被砍杀而死的呢?还是做了见不得人的事而羞愧自杀的呢?还是冻死饿死的啊?抑或是自然老死的呢?”

说完后,庄子便拿起骷髅头,枕着它睡觉了。

半夜,庄子梦见骷髅活了,说:“你说的,都是活人的情况,人死了就没有这些烦恼了”

庄子:“死了有什么呢?”

骷髅说:“死人,上无君王,下无大臣,无四季冷热、劳作,只有从从容容,和天地共长久,快乐无边!”

庄子不信,说:“我如果能恢复你的生命,你愿意吗?”

骷髅听后皱着眉说:“我怎么舍得抛弃快乐,回到人间受苦啊?”

庄子有所思地走了,后来又见到一个骷髅。

庄子指着骷髅说:“你知我知,你不曾死,也不曾活。你有何忧?我又有何乐?”

既然万物齐物平等,那么生前死后,也就不必再纠葛了。




三、梦白龟

《外物》篇中,庄子又用宋元君的名义,又说了一梦。

有一天,宋元君梦见有人披散着头发在侧门偷看,并且对自己说:“我来自深渊,我出使河伯的居所时,渔夫余且捕捉了我。”

宋元君醒来,派人占卜出这是一只神龟,周长五尺。宋元君叫了余且来朝献龟。

白龟送到,宋元君想杀龟又想养龟,正犹豫。

卜者说:“杀掉白龟,用来占卜,一定大吉。”

于是把白龟剖开,用龟板占卜数十次,没有一点失误。

孔子知道后说:“神龟能显梦给宋元君,却不能避开鱼网;能用来占卜没有一点失误,却不能逃脱剖腹。如此说来,神灵也有考虑不到的地方。

如果是一只普通的龟,也许会被放生。其圆五尺的白龟,世所罕见,如供奉在庙堂里,那是神圣荣耀、世俗权力的象征。于是,它就逃不了被杀的下场。

庄子,就是自由自在无拘无束的龟,但他不希望成为那只被供奉起来的龟。对于庄子来说,不自由,莫如死!



四、梦墨


这个梦,记载于《列御寇》:

郑缓学了三年儒家,终成大儒,在家乡办学,又让其弟郑翟学墨家。

弟弟学成后,也回到了家乡教学墨家,一时儒墨相辩,而他们的父亲只帮助弟弟助郑翟。十年而,郑缓爱不了压力自杀。

死后,郑缓托梦给父亲说:“我培养了你的儿子成为了墨家大家。你们却不来看看我的墓冢,现在树都长出来了”

庄子的底层意思呢,你们两家,别为谁是源头、谁是真理而争来争去,这又有什么意义呢?

庄子前面的几个梦,说的都是人生的意义,最后一个梦,说的却是不同学术的观点。当是时也,儒墨争论很大,道家位列一旁,世人多有以为坐山观虎斗之意,庄子于是写了这个梦,以梦说事,这是庄子的传统方法。


04018a66eb1f468ab1f4fb353d278259.png



今天这几个《庄子》新故事是不是比“庄周梦蝶”更加离奇,更加光怪陆离?管它离不离奇,今天我想用新故事的“新”字来引出一个新版本,尽管有点生搬硬套——

它就是Python一周前(2021.10.04) 的新发版本3.10.0 :

1409ff671421415a89084f3e8219af77.png




Python3.10.0 是Python编程语言的最新稳定版本,它包含许多新特性和优化。

与3.9相比,3.10版本的主要新功能和变化包括:


PEP 623——弃用并准备移除PyUnicode对象中的wstr成员

PEP 604——允许将联合类型写入X | Y

PEP 612——参数规范变量

PEP 626——用于调试和其他工具的精确行号

PEP 618——将可选长度检查添加到zip

bpo-12782——现在正式允许使用括号中的上下文管理器

PEP 632——弃用distutils模块

PEP 613——显式类型别名

PEP 634——结构模式匹配:规范

PEP 635——结构模式匹配:动机和原理

PEP 636——结构模式匹配:教程

PEP 644——需要OpenSSL 1.1.1或更新版本

PEP 624——删除Py_UNICODE编码器API

PEP 597——添加可选编码警告

bpo-38605——from _uuFuture _uuImport annotations(PEP 563)在以前的预发行版中曾在此列表中,但由于一些兼容性问题,它已被推迟到Python 3.11。


注:以上内容为机器翻译,如有错误请谅解。




Python 3.10.0 官方下载地址


image.png


注:Python从3.9+开始已不支持 Windows7及更早版本。


 

Python 3.10.0 安装和运行


adc8135f46584efe92c59dbe2136f562.png


fe5e5216a4634d6499835acffc98c12a.png



IDLE窗口的操作提示符移动编辑框外


与3.8.8版本相比,语句的缩进对齐一目了然


11b5d4e2c7034ab49b82a3e415260c6c.png



终于支持分支结构语句


不是switch-case, select-case等,而是 match-case

def fib(n):
    match n:
        case 1|2:
            return 1
        case other:
            return fib(n-1)+fib(n-2)
for i in range(1,11):
    print(fib(i))
1
1
2
3
5
8
13
21
34
55


其中"case other:" 里的other并非关键字,但可能就是相当于其他编程语言中的 case else 或 otherwise 或 default 等等,它可以任意写但效果相同,如下:

def fib(n):
    match n:
        case 1|2:
            return 1
        case anything:
            return fib(n-1)+fib(n-2)
fib(5)
5
fib(10)
55




一个奇怪的小发现


怎么会有赋值功能?

i = 5
match i:
    case 1: print(1)
    case 2: print(2)
    case i: print(i**2)
25
match i:
    case 1: print(1)
    case 2: print(2)
    case n: print(i**2)
25
match i:
    case 1: print(1)
    case 2: print(2)
    case n: print(n**2)
25
match i:
    case 1: print(1)
    case 2: print(2)
    case i: print(n**2)
25
match i:
    case 1: print(1)
    case 2: print(2)
    case a: print(i**2)
25
match i:
    case 1: print(1)
    case 2: print(2)
    case i: print(a**2)
25
a
5
b
Traceback (most recent call last):
  File "<pyshell#15>", line 1, in <module>
    b
NameError: name 'b' is not defined
match i:
    case 1: print(1)
    case 2: print(2)
    case b: print(i**2)
25
b
5



另一个小发现


这算不算bug,还是疏忽了没更新?新版本中关键字 match case 已加亮标注,黄色加亮已是关键字的待遇,但是内置库keyword中的kwlist列表还没有添加进去。

d0d0eb6dcc204b3c9b2744850507822f.png



帮助文档也还没有match和case的内容


help('if')
The "if" statement
******************
The "if" statement is used for conditional execution:
   if_stmt ::= "if" assignment_expression ":" suite
               ("elif" assignment_expression ":" suite)*
               ["else" ":" suite]
It selects exactly one of the suites by evaluating the expressions one
by one until one is found to be true (see section Boolean operations
for the definition of true and false); then that suite is executed
(and no other part of the "if" statement is executed or evaluated).
If all expressions are false, the suite of the "else" clause, if
present, is executed.
Related help topics: TRUTHVALUE
help('return')
The "return" statement
**********************
   return_stmt ::= "return" [expression_list]
"return" may only occur syntactically nested in a function definition,
not within a nested class definition.
If an expression list is present, it is evaluated, else "None" is
substituted.
"return" leaves the current function call with the expression list (or
"None") as return value.
When "return" passes control out of a "try" statement with a "finally"
clause, that "finally" clause is executed before really leaving the
function.
In a generator function, the "return" statement indicates that the
generator is done and will cause "StopIteration" to be raised. The
returned value (if any) is used as an argument to construct
"StopIteration" and becomes the "StopIteration.value" attribute.
In an asynchronous generator function, an empty "return" statement
indicates that the asynchronous generator is done and will cause
"StopAsyncIteration" to be raised.  A non-empty "return" statement is
a syntax error in an asynchronous generator function.
Related help topics: FUNCTIONS
help('match')
No Python documentation found for 'match'.
Use help() to get the interactive help utility.
Use help(str) for help on the str class.
help('case')
No Python documentation found for 'case'.
Use help() to get the interactive help utility.
Use help(str) for help on the str class.

Python 3.10.0 新增功能还有很多,有待以后进一步学习探索……


目录
相关文章
|
2月前
|
存储 Web App开发 运维
发布、部署,傻傻分不清楚?从概念到实际场景,再到工具应用,一篇文章让你彻底搞清楚
部署和发布是软件工程中经常互换使用的两个术语,甚至感觉是等价的。然而,它们是不同的! • 部署是将软件从一个受控环境转移到另一个受控环境,它的目的是将软件从开发状态转化为生产状态,使得软件可以为用户提供服务。 • 发布是将软件推向用户的过程,应用程序需要多次更新、安全补丁和代码更改,跨平台和环境部署需要对版本进行适当的管理,有一定的计划性和管控因素。
150 1
|
7月前
|
PHP 开发者
|
8月前
|
计算机视觉
队列的概念及结构(内有成型代码可供CV工程师参考)
队列的概念及结构(内有成型代码可供CV工程师参考)
55 0
|
11月前
|
机器学习/深度学习 编解码 并行计算
仅做两项修改,苹果就让StyleGANv2获得了3D生成能力
仅做两项修改,苹果就让StyleGANv2获得了3D生成能力
|
人工智能 算法
为什么很少有游戏支持场景破坏?是因为技术问题吗?
最近很多游戏狂热迷们正火热讨论的一个问题是:为什么很少有游戏支持场景破坏?说实话小编也非常好奇,于是乎小编去查了好多资料。接下来小编带领大家一起去深挖究竟!
93 0
为什么很少有游戏支持场景破坏?是因为技术问题吗?
|
图形学
【干货】ZBrush王者细节操作
角色高模在制作中的细节处理------边缘线的处理 很多同学在角色高模的制作中容易出现模型很粗糙缺乏细致的美 感。
216 0
【干货】ZBrush王者细节操作
|
数据库 数据安全/隐私保护
【号外】-温习如何画E-R图
【号外】-温习如何画E-R图
【号外】-温习如何画E-R图
|
设计模式 缓存 JavaScript
90%的人会遇到性能问题,如何用1行代码快速定位?
今天,齐光将会基于之前列举的众多指标,给出一些常见的调优分析思路,即:如何在众多异常性能指标中,找出最核心的那一个,进而定位性能瓶颈点,最后进行性能调优。整篇文章会按照代码、CPU、内存、网络、磁盘等方向进行组织,针对对某一各优化点,会有系统的「套路」总结,便于思路的迁移实践。
2275 0
|
算法
【自然框架】重新整理后的自然框架源码!
  整理后的自然框架源码,有九个项目,可以看下面的脑图,带“对号”的表示是一个独立的项目。后面的是主要内容。     欢迎下载http://www.naturefw.com/Down/kind38/List1.aspx ,但是请保留源码里的版权信息,以及dll里的版权信息。
753 0
|
数据库
【自然框架.视频】基础设置(一)如何下载自然框架
  大家好,好久没有发博客了,这段时间是为了能够做出来更好的视频,做一些准备。目前还在锻炼中,以前一直很内向,话都说不利索,要做视频都很怵头。不过呢,要不断的提高自己,弥补自己的不足。现在还年轻,要多多努力!     打算做一套全新的视频,好好的把自然框架给详细的介绍一遍。
561 0