WEBVTT

1
00:00:00.840 --> 00:00:03.620
大家好，歡迎收看另一期藝術家腳本編寫節目。

2
00:00:03.710 --> 00:00:06.260
我的名字Sybren，在這一集中我們將

3
00:00:06.260 --> 00:00:09.690
著眼於程式碼的可讀性和理解能力。

4
00:00:09.910 --> 00:00:12.560
有時讓電腦準確地執行任務可能會很棘手

5
00:00:12.560 --> 00:00:16.170
你想要什麼，當事情最終成功時，這是一個偉大的勝利，

6
00:00:16.260 --> 00:00:20.460
由於程式碼運作正常，因此很容易繼續處理手邊的下一個任務

7
00:00:22.440 --> 00:00:25.210
好吧，這通常是停止編碼的好時機

8
00:00:25.380 --> 00:00:27.320
並再次通讀一遍。

9
00:00:27.700 --> 00:00:28.600
問問你自己，

10
00:00:28.730 --> 00:00:31.470
我真的理解程式碼為何有效嗎？

11
00:00:31.780 --> 00:00:33.360
我明白我寫的東西嗎？

12
00:00:33.740 --> 00:00:37.710
因為通常當我編寫程式碼時，看起來完全沒問題，但是當我採取

13
00:00:37.710 --> 00:00:40.920
退後一步，試著解釋我對我的橡皮鴨做了什麼，

14
00:00:40.960 --> 00:00:43.760
我開始注意到一些醜陋或不清楚的地方

15
00:00:44.430 --> 00:00:45.250
在這個影片中，

16
00:00:45.250 --> 00:00:49.420
我們將查看一些攪拌機代碼並採取一些步驟來提高其可讀性。

17
00:00:49.840 --> 00:00:52.370
最重要的是這些步驟並不

18
00:00:52.380 --> 00:00:55.650
需要了解程式碼實際在做什麼。

19
00:00:55.690 --> 00:00:58.860
只需要非常膚淺的Python知識。

20
00:00:59.340 --> 00:01:01.480
這意味著您可以使用以下步驟

21
00:01:01.480 --> 00:01:03.650
提高程式碼的理解能力

22
00:01:03.760 --> 00:01:05.060
即使是為了你自己。

23
00:01:05.540 --> 00:01:06.050
是的，

24
00:01:06.050 --> 00:01:08.690
重組程式碼實際上是獲得

25
00:01:08.690 --> 00:01:11.840
更好地理解程式碼甚至發現錯誤，

26
00:01:12.540 --> 00:01:16.810
我想看的外套，在這裡畫這個面板或相機，

27
00:01:16.810 --> 00:01:17.850
背景影像，

28
00:01:18.240 --> 00:01:21.670
您可以單擊每個圖像的圖像，您將獲得一個框。

29
00:01:21.680 --> 00:01:25.580
每個框都允許您選擇背景圖像的來源，

30
00:01:25.590 --> 00:01:28.710
無論是影像還是影片剪輯，然後

31
00:01:28.720 --> 00:01:31.400
您可以選擇影像或影片剪輯，

32
00:01:31.400 --> 00:01:32.490
取決於你的選擇。

33
00:01:32.490 --> 00:01:35.020
如果選擇了影像或影片剪輯，

34
00:01:35.030 --> 00:01:37.460
你會得到各種不同的選擇。

35
00:01:38.520 --> 00:01:40.780
讓我們來看看繪製這一切的程式碼。

36
00:01:42.240 --> 00:01:43.270
我們在程式碼中，

37
00:01:43.270 --> 00:01:47.270
我已經折疊了所有其他目前不感興趣的類別。

38
00:01:47.410 --> 00:01:51.000
我們只看相機、背景影像類

39
00:01:51.120 --> 00:01:52.490
此類別有兩個功能，

40
00:01:52.490 --> 00:01:56.760
繪製標題和繪製並繪製標題非常簡單，所以我們將跳過它。

41
00:01:56.770 --> 00:01:59.760
沒關係。但抽獎是另一回事。

42
00:01:59.940 --> 00:02:04.260
如果我們快速滾動它，你可以看到有一個 for 循環

43
00:02:04.640 --> 00:02:08.889
只是發生了一些事情，然後就有了一個“如果”和“如果”

44
00:02:08.889 --> 00:02:12.320
還有另一個如果還有另一個如果還有另一個如果然後還有

45
00:02:12.320 --> 00:02:17.190
事情發生了，還有其他的事情，還有更多的如果，還有另一個如果

46
00:02:17.200 --> 00:02:22.130
嗯，現在我已經記不清我們在程式碼中的位置了，

47
00:02:22.140 --> 00:02:23.450
發生了什麼事。

48
00:02:23.540 --> 00:02:26.660
您可以看到壓痕的程度相當大。

49
00:02:27.840 --> 00:02:30.660
這一點可以認真改進。

50
00:02:31.040 --> 00:02:32.860
那我們就從最上面開始吧

51
00:02:33.340 --> 00:02:38.350
我們取得佈局並設定一些屬性，並取得其他一些屬性。

52
00:02:38.360 --> 00:02:41.800
我不在乎這有什麼作用。確切地說，我不在乎這有什麼作用。確切地。

53
00:02:41.800 --> 00:02:45.610
有些設置，有些獲取，一切都很好很簡單。

54
00:02:45.620 --> 00:02:47.760
但這裡的結構有所不同

55
00:02:47.760 --> 00:02:49.670
我們循環播放背景影像。

56
00:02:49.670 --> 00:02:53.490
所以它為每個背景圖像創建一個盒子，我

57
00:02:53.490 --> 00:02:56.560
認為將其分離為自己的功能是個好主意。

58
00:02:56.840 --> 00:02:59.380
所以我們在這個函數中有一個循環，然後調用

59
00:02:59.390 --> 00:03:02.820
為該特定圖像建立框的函數。

60
00:03:02.960 --> 00:03:05.900
這樣，當編寫處理該圖像的程式碼時，

61
00:03:05.910 --> 00:03:07.630
我們甚至不必考慮

62
00:03:07.630 --> 00:03:10.760
事實上我們也在循環其他影像

63
00:03:11.240 --> 00:03:16.390
根據經驗，但我想向函數傳遞盡可能少的信息

64
00:03:16.840 --> 00:03:20.220
這意味著您對該函數的內容有一個非常清晰的了解。

65
00:03:20.240 --> 00:03:22.750
例如，我可以傳遞整個上下文

66
00:03:22.860 --> 00:03:25.700
然後函數可以執行與此處相同的操作。

67
00:03:25.700 --> 00:03:28.450
它可以捕捉相機，可以從中獲取其他東西，

68
00:03:28.940 --> 00:03:34.350
但我真的不知道那裡正在使用什麼。它甚至使用相機嗎？

69
00:03:34.360 --> 00:03:37.960
它是否甚至使用多視圖，無論它是什麼。

70
00:03:38.640 --> 00:03:41.760
這就是為什麼我喜歡明確地傳遞東西。

71
00:03:42.340 --> 00:03:46.890
我認為這個佈局不會超出這兩行，

72
00:03:46.890 --> 00:03:48.800
就像你在這裡看不到任何亮點一樣。

73
00:03:48.800 --> 00:03:54.760
所以我們假設它只是用來創建那個盒子，東西應該放進去。

74
00:03:55.240 --> 00:04:00.180
因此，我們將其保留在這裡，僅將框傳遞給新函數。

75
00:04:00.400 --> 00:04:05.000
我想在這個類別上創建這個函數，以便將所有內容組合在一起。

76
00:04:05.040 --> 00:04:07.860
這意味著調用必須以 self 點開頭

77
00:04:08.240 --> 00:04:11.250
因為它是此類的內部函數。

78
00:04:11.250 --> 00:04:16.670
它僅供我們私人使用，不適合從班級外部調用

79
00:04:17.089 --> 00:04:20.279
我想用底線表示。所以它以下劃線開頭

80
00:04:20.430 --> 00:04:24.460
它將繪製一張背景圖像。所以我們就稱它為

81
00:04:25.340 --> 00:04:25.760
快點

82
00:04:26.640 --> 00:04:27.660
背景圖片

83
00:04:28.240 --> 00:04:29.950
那麼它需要盒子。

84
00:04:30.340 --> 00:04:30.960
嗯，是嗎，

85
00:04:31.740 --> 00:04:32.590
它使用盒子嗎？

86
00:04:34.240 --> 00:04:35.900
它使用盒子。所以，是的，

87
00:04:36.090 --> 00:04:36.550
它

88
00:04:36.940 --> 00:04:40.020
我想需要 I 和 B G。

89
00:04:40.130 --> 00:04:43.150
我認為它也需要相機

90
00:04:44.540 --> 00:04:45.260
或者這樣做，

91
00:04:46.340 --> 00:04:48.350
沒有。不，事實並非如此。

92
00:04:48.740 --> 00:04:53.450
不突出顯示僅在此處使用的營地名稱，然後使用多視圖，

93
00:04:53.460 --> 00:04:55.270
我認為他們用的是。

94
00:04:55.270 --> 00:04:56.860
所以確實需要這樣

95
00:04:59.940 --> 00:05:01.160
我想就是這樣。

96
00:05:02.640 --> 00:05:04.350
現在我們接到電話了，那就是

97
00:05:04.940 --> 00:05:07.660
把所有的程式碼都放在那裡，

98
00:05:09.840 --> 00:05:13.760
我們定義了這個函數，它也得到了它自己和其餘的部分

99
00:05:14.340 --> 00:05:18.560
現在我們可以將所有其他程式碼無意中提高一級。

100
00:05:20.040 --> 00:05:22.910
現在您已經看到的就是我們的優勢

101
00:05:22.910 --> 00:05:26.290
不必尋找天氣攝像頭，

102
00:05:26.470 --> 00:05:30.180
我們可以看到這裡使用的是它並沒有傳遞給這個函數。

103
00:05:30.280 --> 00:05:33.930
這樣我們就對這個變數的範圍有了更好的理解

104
00:05:34.100 --> 00:05:37.490
這就是所有重構的目的，它更容易

105
00:05:37.490 --> 00:05:41.550
查看哪部分程式碼需要哪部分資料。

106
00:05:42.340 --> 00:05:46.260
順便說一句，我現在註意到的另一件事是，佈局點是否處於活動狀態？

107
00:05:46.640 --> 00:05:48.030
這不取決於我

108
00:05:48.240 --> 00:05:49.760
這不取決於BJ。

109
00:05:50.240 --> 00:05:53.360
所以它甚至不需要設定在這個 for 迴圈中。

110
00:05:54.040 --> 00:05:56.650
並且沒有所有混亂或其餘代碼，

111
00:05:57.240 --> 00:05:59.060
突然之間開始脫穎而出。

112
00:05:59.740 --> 00:06:04.790
因此，讓我們將其一直移動到我們在佈局上設置其他內容的位置，

113
00:06:04.800 --> 00:06:05.560
但後來

114
00:06:06.740 --> 00:06:11.370
我們需要這樣的。好的，這已經很好地清理了這個函數。

115
00:06:11.390 --> 00:06:12.460
我們繼續吧。

116
00:06:13.440 --> 00:06:18.040
所以在這裡我們創建一行，一些事情的發生取決於它是否是一個

117
00:06:18.050 --> 00:06:21.130
影像或影片剪輯或呃呃這一切看起來都很簡單，

118
00:06:21.130 --> 00:06:22.160
所以我就跳過它。

119
00:06:22.540 --> 00:06:28.360
嗯，那麼這裡我們唯一使用的是 I 參數。所以讓我們給它一個更好的名字。

120
00:06:28.370 --> 00:06:31.260
按 Control D 選擇兩個實例，

121
00:06:32.540 --> 00:06:33.850
我們稱之為圖像索引。

122
00:06:33.860 --> 00:06:39.290
BG也是一個可疑的名字，我認為它太短了，但它被經常使用。

123
00:06:39.290 --> 00:06:41.060
我們暫時先不管它。

124
00:06:41.840 --> 00:06:43.160
所以這看起來不錯。

125
00:06:43.740 --> 00:06:47.200
然後這裡我們有如果 BG 點顯示擴展

126
00:06:47.480 --> 00:06:51.370
我認為這就是那個擴大盒子的小三角形。

127
00:06:51.840 --> 00:06:54.410
大部頭書。這意味著這裡發生了兩件事。

128
00:06:54.420 --> 00:06:57.060
正在繪製始終顯示的框部分

129
00:06:57.440 --> 00:07:00.990
然後是盒子的可選擴展部分。

130
00:07:01.330 --> 00:07:03.680
對我來說這意味著繪製擴充的東西是

131
00:07:03.680 --> 00:07:06.260
不同的事物，因此屬於不同的功能。

132
00:07:10.840 --> 00:07:15.850
那我們需要給它什麼呢？顯然我們需要這個盒子

133
00:07:16.240 --> 00:07:19.450
圖像索引僅使用一次。所以我們不需要通過它。

134
00:07:19.840 --> 00:07:23.350
使用多視圖尚未使用。所以它肯定會在下面的某個地方被使用。

135
00:07:23.840 --> 00:07:26.260
當然，我們需要背景圖像本身

136
00:07:34.540 --> 00:07:35.950
然後是其餘的代碼

137
00:07:36.340 --> 00:07:38.390
又一個層次的強烈。

138
00:07:40.440 --> 00:07:43.860
現在你可以看到這個函數又變得更簡單了。

139
00:07:44.240 --> 00:07:45.950
所以讓我們繼續更進一步。

140
00:07:46.740 --> 00:07:48.450
現在我們得到一些書。

141
00:07:51.630 --> 00:07:52.760
我不知道這意味著什麼。

142
00:07:53.240 --> 00:07:53.860
呃

143
00:07:54.540 --> 00:07:56.920
那麼如果來源影像那麼

144
00:07:57.230 --> 00:07:58.260
東西

145
00:07:58.740 --> 00:08:01.260
否則，如果來源電影剪輯而不是東西。

146
00:08:01.640 --> 00:08:02.620
進而

147
00:08:03.000 --> 00:08:04.160
我們來看看房子的帳本。

148
00:08:06.440 --> 00:08:09.430
好吧，這又發生了一些不同的事情。

149
00:08:09.540 --> 00:08:13.850
它根據所選的來源進行選擇，然後繪製一些內容。

150
00:08:14.240 --> 00:08:16.760
那麼讓我們再次使用同樣的技巧。

151
00:08:19.520 --> 00:08:22.970
我們稱之為繪製影像。這將

152
00:08:23.940 --> 00:08:27.680
可能不會使用這條路，因為它首先創建一個新行。

153
00:08:27.690 --> 00:08:34.490
所以它只會取得盒子和 PG 並使用多視圖，然後我們可以使用這段程式碼

154
00:08:34.640 --> 00:08:38.760
將其移到此處並縮進，以便我們可以再次找到它。

155
00:08:40.840 --> 00:08:41.559
我們到了。

156
00:08:41.940 --> 00:08:42.150
嗯。

157
00:08:43.140 --> 00:08:44.360
我們有一個函數。

158
00:08:45.340 --> 00:08:48.460
讓我們忽略房屋帳簿。現在我們稍後再討論這個問題。

159
00:08:49.440 --> 00:08:51.360
現在讓我們對影片剪輯執行同樣的操作。

160
00:08:54.640 --> 00:08:56.560
控制檔 D 至

161
00:08:56.700 --> 00:08:57.850
複製該行

162
00:08:58.740 --> 00:09:00.450
全部向下移動它。

163
00:09:02.240 --> 00:09:03.050
重命名它，

164
00:09:03.640 --> 00:09:04.660
貼上程式碼

165
00:09:05.540 --> 00:09:06.590
和一個印度人

166
00:09:07.040 --> 00:09:13.060
你現在已經可以看到我的 I D E 繪圖使用深藍色的多視圖

167
00:09:13.440 --> 00:09:18.450
這意味著該參數甚至沒有被使用。所以讓我們刪除它

168
00:09:19.040 --> 00:09:21.370
並且也從通話中刪除。

169
00:09:21.940 --> 00:09:24.460
再一次，你可以看到事情開始變得清晰

170
00:09:24.840 --> 00:09:27.460
現在你可以看到你們大多數人只使用了

171
00:09:27.460 --> 00:09:30.320
用於繪製影像而不是錯誤的影片剪輯。

172
00:09:30.330 --> 00:09:33.400
請記住，我們尚未更改功能。

173
00:09:33.410 --> 00:09:36.890
我們剛剛移動了一些程式碼行，但是它們的關係

174
00:09:36.890 --> 00:09:39.880
當談到他們被執行的順序時，

175
00:09:39.880 --> 00:09:41.060
他們獲得哪些數據。

176
00:09:41.440 --> 00:09:42.960
一切還是一樣。

177
00:09:43.340 --> 00:09:46.030
所以不了解它到底做了什麼。

178
00:09:46.040 --> 00:09:48.500
我們已經可以做出所有這些改變。

179
00:09:48.940 --> 00:09:51.150
現在我們回到繪製圖像函數

180
00:09:51.150 --> 00:09:54.250
因為你仍然可以看到它有雙重發明

181
00:09:54.740 --> 00:09:59.870
我不喜歡這樣。如果 b g 點影像不是無，那麼

182
00:10:00.030 --> 00:10:02.660
否則會發生什麼，什麼事也不會發生。

183
00:10:03.340 --> 00:10:04.750
那為什麼不把它翻轉過來呢

184
00:10:06.240 --> 00:10:08.000
如果 BG 點影像為無

185
00:10:08.160 --> 00:10:08.760
返回，

186
00:10:09.340 --> 00:10:14.220
其中一個印度人更碼。我們可以對視圖做同樣的事情。多視圖。

187
00:10:14.230 --> 00:10:16.770
您可以將其放入不同的函數中，例如此博客

188
00:10:16.780 --> 00:10:20.500
專門用於繪製多視圖選項，但您已經見過它了。

189
00:10:20.500 --> 00:10:24.850
所以讓我們暫時跳過它。我認為還有更有趣的

190
00:10:25.400 --> 00:10:28.960
記住這一點。它曾經是一大塊程式碼。所以

191
00:10:29.540 --> 00:10:33.650
預設情況下，在某些特定情況下它被設定為 false

192
00:10:34.140 --> 00:10:35.220
它接受了真實的。

193
00:10:35.230 --> 00:10:37.900
這意味著這兩個函數知道

194
00:10:37.900 --> 00:10:41.510
該函數現在不再知道的東西。

195
00:10:41.540 --> 00:10:45.750
換句話說，我們需要從繪製影像中獲取一些資訊並繪製影片剪輯

196
00:10:46.140 --> 00:10:48.000
並得到回報

197
00:10:48.200 --> 00:10:49.110
到這個函數

198
00:10:49.340 --> 00:10:50.250
這就是關鍵所在。

199
00:10:50.250 --> 00:10:54.260
我們可以根據書的內容回傳 true 或 false

200
00:10:55.340 --> 00:11:00.200
這裡。它是如此的真實，也意味著在此之前它將是如此的虛假。

201
00:11:00.210 --> 00:11:03.330
所以我們聲明這個函數回傳一個

202
00:11:03.330 --> 00:11:06.860
布林值，這裡我們可以回傳 false 和

203
00:11:07.240 --> 00:11:08.560
在其他情況下

204
00:11:10.640 --> 00:11:12.040
我們可以直接回傳true。

205
00:11:12.390 --> 00:11:15.050
現在我們已經完全消除了這個變量

206
00:11:15.440 --> 00:11:19.960
我們只是根據是否有可用圖像返回 true 或 false

207
00:11:20.740 --> 00:11:23.040
同樣的邏輯也適用於

208
00:11:23.190 --> 00:11:24.160
繪製影片剪輯。

209
00:11:26.840 --> 00:11:31.270
所以如果使用相機剪輯或BG點剪輯的話，那就是真的。

210
00:11:31.270 --> 00:11:34.320
否則它就會得到預設的 false。

211
00:11:34.340 --> 00:11:36.950
所以我們能做的是這樣的，

212
00:11:37.740 --> 00:11:41.890
但當你設定了它，然後你又對其他不太好的東西說了一遍。

213
00:11:41.940 --> 00:11:45.560
當然我們也可以這樣做，但這段程式碼是什麼意思呢？

214
00:11:45.560 --> 00:11:48.440
這意味著如果這個表達式為真

215
00:11:48.440 --> 00:11:51.640
變數變為真，如果該表達式為假，

216
00:11:51.650 --> 00:11:53.030
該變數變為 false。

217
00:11:53.110 --> 00:11:55.790
所以你可以這樣做

218
00:11:56.340 --> 00:12:03.860
有書等於使用相機剪輯或剪輯，現在我們可以說返回，有書

219
00:12:05.740 --> 00:12:07.150
現在剩下的一切

220
00:12:07.540 --> 00:12:09.360
就是實際使用回傳值

221
00:12:11.200 --> 00:12:13.280
我們又得到了這樣的模式

222
00:12:13.550 --> 00:12:14.650
設定變數

223
00:12:14.810 --> 00:12:16.960
然後再次將其設定為其他內容，

224
00:12:17.340 --> 00:12:18.700
這不太好。

225
00:12:19.140 --> 00:12:22.480
所以我們能做的就是聽聽其他的

226
00:12:22.810 --> 00:12:24.830
結構開始變得有點

227
00:12:24.830 --> 00:12:27.790
根據影像來源的類型更清晰，

228
00:12:27.800 --> 00:12:32.130
我們繪製特定於該類型的東西，該函數會傳回是否

229
00:12:32.260 --> 00:12:34.590
該圖像實際上就在那裡。

230
00:12:34.770 --> 00:12:35.850
所以也許

231
00:12:36.540 --> 00:12:38.100
我們應該重命名這個變數

232
00:12:38.500 --> 00:12:39.060
也

233
00:12:39.440 --> 00:12:41.970
作為來源，取決於來源，

234
00:12:41.980 --> 00:12:44.410
我們用它做一些事情，返回是否有

235
00:12:44.410 --> 00:12:46.840
是該類型的可用來源。

236
00:12:46.850 --> 00:12:48.840
我認為這已經清楚多了

237
00:12:49.050 --> 00:12:53.850
現在最後如果 has source 為 true，則執行此程式碼，

238
00:12:53.860 --> 00:12:55.470
否則什麼都不執行。

239
00:12:56.040 --> 00:12:57.850
這意味著我們可以說

240
00:12:57.950 --> 00:13:00.950
如果沒有，則來源返回，因為工作已完成

241
00:13:01.180 --> 00:13:04.210
最後我們得到了這個 else 的來源是錯的

242
00:13:04.940 --> 00:13:07.380
我們已經知道如果這是假的

243
00:13:07.380 --> 00:13:10.690
然後我們會返回以了解當您說預設時會發生什麼，

244
00:13:10.690 --> 00:13:13.930
你必須繼續閱讀並思考正在發生的事情。

245
00:13:13.930 --> 00:13:18.260
我不喜歡那樣。因此，讓我們停止使用我們的大腦，只說否則返回。

246
00:13:19.140 --> 00:13:22.760
我認為現在我們有了更好的程式碼，

247
00:13:23.440 --> 00:13:26.100
讓我們再從頭開始看一遍，我們有一個繪製函數，

248
00:13:26.480 --> 00:13:28.630
這個，它讀取所有背景圖像

249
00:13:28.980 --> 00:13:29.870
創建一個盒子

250
00:13:30.340 --> 00:13:31.210
並填滿盒子

251
00:13:31.740 --> 00:13:32.360
而且簡單。

252
00:13:32.840 --> 00:13:35.000
其餘的程式碼也同樣簡單。

253
00:13:35.160 --> 00:13:38.660
現在，如果我們滾動它，請注意縮排級別，

254
00:13:39.640 --> 00:13:41.950
你可以看到班級有縮排

255
00:13:41.950 --> 00:13:45.060
for 函數，然後 for 一個條件或循環

256
00:13:45.740 --> 00:13:46.590
就是這樣。

257
00:13:47.740 --> 00:13:50.460
我們的程式碼完全扁平化了。

258
00:13:50.840 --> 00:13:54.860
沒有條件嵌套，這一切都更容易理解。

259
00:13:55.940 --> 00:14:00.290
所以我們所做的其實是降低了他們所說的認知複雜性。

260
00:14:00.300 --> 00:14:05.860
這是一個指標，可以為您提供特定代碼複雜程度的評分。基本上。

261
00:14:05.860 --> 00:14:09.560
它懲罰條件內的條件內的條件，

262
00:14:10.140 --> 00:14:12.960
您在另一點新增的每個條件

263
00:14:13.440 --> 00:14:20.160
加上您放置它的位置的嵌套層級。因此，如果在 F 內，則可獲得 3 分。

264
00:14:20.640 --> 00:14:21.930
兩個代表兩個如果。

265
00:14:21.940 --> 00:14:26.050
因為第二個 if 在另一個 if 之內，如果它得到另一個點，

266
00:14:26.280 --> 00:14:27.080
我會告訴你

267
00:14:27.230 --> 00:14:30.060
這裡。我們有一個簡單的功能。分數為零。

268
00:14:30.440 --> 00:14:33.760
這裡我們有一個得分函數。一是因為它只有一個條件

269
00:14:34.240 --> 00:14:39.250
直到我們有一個巢狀條件的函數。所以這得三分

270
00:14:39.740 --> 00:14:42.010
初始條件加一

271
00:14:42.400 --> 00:14:44.090
並加上兩個嵌套。

272
00:14:44.090 --> 00:14:47.940
+11 表示條件本身，1 表示它是嵌套的。

273
00:14:48.170 --> 00:14:50.170
如果你要嵌套另一個會得到

274
00:14:50.180 --> 00:14:52.250
兩個用於嵌套，一個用於條件。

275
00:14:52.940 --> 00:14:56.560
因此，透過減少所有這些程式碼的嵌套級別，

276
00:14:56.570 --> 00:15:00.860
我們確實降低了這個特定的複雜性指標。

277
00:15:01.440 --> 00:15:04.640
我們已經完成了這一集的藝術家腳本編寫工作。

278
00:15:04.650 --> 00:15:07.040
我希望您已經了解了一些如何

279
00:15:07.040 --> 00:15:10.230
將您的程式碼修改為更具可讀性並獲得

280
00:15:10.230 --> 00:15:12.700
對單獨放置什麼有更多的感覺

281
00:15:12.700 --> 00:15:15.270
函數以及在同一函數中保留什麼。

282
00:15:15.550 --> 00:15:17.420
關於這個還有很多要說的

283
00:15:17.420 --> 00:15:20.660
我確信我會在以後的影片中介紹這一點。

284
00:15:20.670 --> 00:15:22.050
非常感謝您的觀看。



