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

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

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

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 新增功能还有很多,有待以后进一步学习探索……


目录
相关文章
|
6月前
|
存储 安全 编译器
C++学习过程中的一些值得注意的小点(1)
C++学习过程中的一些值得注意的小点(1)
|
1月前
|
机器学习/深度学习 敏捷开发 算法
技术之道:从细节到全局的智慧
【10月更文挑战第12天】 本文将分享一些关于技术感悟的心得,通过具体实例和总结,探讨如何从细节出发,逐步提升技术能力。无论是新手还是资深开发者,都能从中得到启发和指导。
38 1
|
6月前
|
算法 安全 数据安全/隐私保护
深入探究一个长期隐藏的底层bug的学习报告
在软件开发的过程中,底层bug往往像一颗定时炸弹,随时可能引发严重的问题。本文将分享我在开发过程中遇到的一个长期未被发现的底层bug,以及我如何逐步排查并最终解决这个问题的全过程。通过这次排查,我深刻认识到了代码规范性的重要性。一个不规范的代码修改,虽然短期内可能不会引起问题,但长期累积下来,可能会引发灾难性的后果。此外,我也意识到了底层模块的通用性和风险意识的重要性。在解决一个问题的同时,应该审视是否有相似的问题存在,以避免未来的风险。
126 3
|
PHP 开发者
|
计算机视觉
队列的概念及结构(内有成型代码可供CV工程师参考)
队列的概念及结构(内有成型代码可供CV工程师参考)
74 0
|
图形学
【干货】ZBrush王者细节操作
角色高模在制作中的细节处理------边缘线的处理 很多同学在角色高模的制作中容易出现模型很粗糙缺乏细致的美 感。
248 0
【干货】ZBrush王者细节操作
|
人工智能 算法
为什么很少有游戏支持场景破坏?是因为技术问题吗?
最近很多游戏狂热迷们正火热讨论的一个问题是:为什么很少有游戏支持场景破坏?说实话小编也非常好奇,于是乎小编去查了好多资料。接下来小编带领大家一起去深挖究竟!
142 0
为什么很少有游戏支持场景破坏?是因为技术问题吗?
|
数据库 数据安全/隐私保护
【号外】-温习如何画E-R图
【号外】-温习如何画E-R图
【号外】-温习如何画E-R图
|
人工智能 自然语言处理 BI
阿里的问答模型新思路:利用外部知识增加QA答案自然程度
自然语言处理曾被认为是人工智能皇冠上的璀璨明珠,现如今再随着图像识别等技术的长足进步,这颗明珠似乎也显得有些暗淡无光了。但是,一篇来自阿里巴巴研究团队提交到EMNLP 2019的关于自然语言生成文章,似乎为自然语言处理领域重现昔日荣光找到方向
|
算法
【自然框架】重新整理后的自然框架源码!
  整理后的自然框架源码,有九个项目,可以看下面的脑图,带“对号”的表示是一个独立的项目。后面的是主要内容。     欢迎下载http://www.naturefw.com/Down/kind38/List1.aspx ,但是请保留源码里的版权信息,以及dll里的版权信息。
778 0