WEBVTT

1
00:00:00.440 --> 00:00:02.440
您好，歡迎來到藝術家腳本。

2
00:00:02.450 --> 00:00:06.390
我的名字Sybren，這集叫烤。我的補充。

3
00:00:06.400 --> 00:00:09.820
我在社交媒體上詢問了您的附加組件供我烘焙

4
00:00:09.830 --> 00:00:12.570
這樣我們就可以經歷它並看看有什麼不好的地方。

5
00:00:12.570 --> 00:00:14.780
什麼是好的，如何改進。

6
00:00:14.780 --> 00:00:18.290
我們觀察了幾個不同的成年人，在這一集的最後，我

7
00:00:18.290 --> 00:00:22.260
將提取一些一般提示和技巧供您在自己的程式碼中使用

8
00:00:22.540 --> 00:00:25.500
湯普森在推特上說，嘿，謝謝，這是個好主意。

9
00:00:25.510 --> 00:00:28.740
我很高興能有一些專業人士參與我的程式設計工作。

10
00:00:28.750 --> 00:00:32.430
第一個附加元件是 M 工作流程的專案經理，

11
00:00:32.430 --> 00:00:35.860
其他附加元件是一個簡單的工具，用於在混合文件中重新載入圖像，

12
00:00:35.860 --> 00:00:38.460
如果您有時間，請隨意挑選一個，加油，

13
00:00:38.640 --> 00:00:40.710
我會先選第二個，因為

14
00:00:40.710 --> 00:00:43.350
看起來簡單又美好。

15
00:00:43.540 --> 00:00:47.840
讓我們來看看 Git hub 上的程式碼，第一件事

16
00:00:47.840 --> 00:00:49.910
我注意到它有一個描述

17
00:00:49.910 --> 00:00:52.860
很好，並且可以自動重新加載圖像紋理。

18
00:00:53.840 --> 00:00:56.130
然後有一堆文件，還有一個

19
00:00:56.130 --> 00:00:58.730
撕破臉說它可以容納 80 個成年人。

20
00:00:58.730 --> 00:01:01.820
因此它與更現代的攪拌機版本兼容。

21
00:01:01.820 --> 00:01:04.959
我假設它也可以在 2.80 以上的版本上運行。

22
00:01:05.440 --> 00:01:07.540
它可以刷新混合文件的所有圖像。

23
00:01:07.540 --> 00:01:11.600
它可以使用術語 or 來獲取修改後的圖像檔案並在需要時重新載入它們。

24
00:01:11.610 --> 00:01:14.650
這非常方便，我已經想使用它了。

25
00:01:14.660 --> 00:01:18.530
它有一個下載鏈接，還有一個小演示視頻。

26
00:01:18.540 --> 00:01:19.860
如果你想觀看視頻，

27
00:01:19.860 --> 00:01:23.660
我已將連結放在說明中，以便您只需單擊即可。

28
00:01:23.670 --> 00:01:27.500
我正在查看那裡的所有文件，但我不會

29
00:01:27.510 --> 00:01:32.330
確切地知道開發人員使用這些功能會發生什麼。

30
00:01:32.340 --> 00:01:35.990
嗯，有 DEV，我不知道 DEV 怎麼樣

31
00:01:36.000 --> 00:01:39.550
與開發者功能不同，還有雜項

32
00:01:40.240 --> 00:01:43.820
可能是雜項的縮寫。那麼某些功能會去哪裡呢？

33
00:01:43.820 --> 00:01:47.390
會不會很雜？會不會聾了？開發商會做尾巴嗎？

34
00:01:47.400 --> 00:01:51.930
會是函數嗎？所以我總是盡量避免命名事物。

35
00:01:51.940 --> 00:01:55.860
你尾隨或幫手或雜物。

36
00:01:55.860 --> 00:01:59.300
一般來說，這表明它只是一個包

37
00:01:59.300 --> 00:02:01.960
隨著時間的推移會擴展的東西

38
00:02:02.240 --> 00:02:04.660
這不是您想要在原始程式碼中出現的內容。

39
00:02:05.340 --> 00:02:07.860
現在，讓我們來看看分鐘文件，

40
00:02:08.740 --> 00:02:12.760
文件中有 19 行，原始碼有 71 行。

41
00:02:13.140 --> 00:02:16.810
這是一個相當小的文件，但非常好。所以它提供了一個很好的概述。

42
00:02:16.810 --> 00:02:18.930
它從版權資訊開始。

43
00:02:18.940 --> 00:02:24.060
當然是GPL許可證，法案資訊都給了，甚至節目

44
00:02:24.440 --> 00:02:26.960
您可以在其中找到此附加元件的設置

45
00:02:27.440 --> 00:02:32.360
那。歐元疲軟。到目前為止，它已經記錄了您重要的餡餅的軌跡。超好的。

46
00:02:32.940 --> 00:02:37.530
現在它導入導入庫並從 period 進行檢查並導入開發人員，

47
00:02:37.530 --> 00:02:39.800
這意味著從當前模組開始，

48
00:02:39.800 --> 00:02:42.060
導入名為 Developer You tales 的子模組。

49
00:02:42.440 --> 00:02:45.020
然後它嘗試重新加載這是否有效。

50
00:02:45.020 --> 00:02:47.250
但一般重載方案是

51
00:02:47.250 --> 00:02:49.310
與多文件模組有點不同。

52
00:02:49.310 --> 00:02:51.350
但如果這對你有用，那就沒問題了。

53
00:02:51.360 --> 00:02:54.620
然後我們的模組正在開發詳細資訊設定成人模組。

54
00:02:54.620 --> 00:02:56.770
路徑名指向本地。

55
00:02:56.780 --> 00:03:02.560
好的，魔法正在發生，然後是類，並且是一個空列表。進而

56
00:03:02.840 --> 00:03:04.300
所以這基本上是

57
00:03:04.300 --> 00:03:07.850
我猜收集了所有需要的Python類

58
00:03:07.850 --> 00:03:10.960
從子模組註冊和註銷。

59
00:03:11.340 --> 00:03:13.610
通常我不會這樣做。

60
00:03:13.610 --> 00:03:17.360
我會給每個停止模組它自己的註冊和未註冊功能。

61
00:03:17.370 --> 00:03:22.180
只需從頂層函數呼叫即可。這樣就沒有魔法了。

62
00:03:22.190 --> 00:03:25.260
從哪裡調用事物都非常清楚。

63
00:03:25.740 --> 00:03:28.760
是的，我不是這種魔法的忠實粉絲。

64
00:03:29.240 --> 00:03:32.480
然後是 from dot 函數，導入重新載入啟動。

65
00:03:32.480 --> 00:03:36.540
因此，從子模組功能中，它導入了重新載入啟動的東西。

66
00:03:36.550 --> 00:03:37.760
我認為這是一個功能。

67
00:03:38.240 --> 00:03:39.760
一

68
00:03:40.440 --> 00:03:40.950
好的

69
00:03:41.640 --> 00:03:43.650
然後，對於寄存器，一些

70
00:03:44.140 --> 00:03:46.860
添加的屬性都很好。

71
00:03:47.240 --> 00:03:51.090
然後對於CLS中的類別稱為暫存器類別。是的。

72
00:03:51.090 --> 00:03:55.460
因此，這使用您在此處定義的類別列表

73
00:03:55.940 --> 00:03:58.630
然後註冊一切。好的。

74
00:03:58.630 --> 00:04:02.860
然後重新載入啟動被加入為載入後處理程序。

75
00:04:03.240 --> 00:04:09.070
這裡的 Dell CLS 確實沒有必要，因為唯一可以做的就是

76
00:04:09.070 --> 00:04:14.520
在 python 中它會刪除 CLS 名稱，但在下一種情況下，

77
00:04:14.520 --> 00:04:17.140
無論如何，CLS 都會分配給它下一個類別。

78
00:04:17.140 --> 00:04:18.560
那麼它又存在了。

79
00:04:18.589 --> 00:04:22.050
這與 C plus plus 不同，它會刪除記憶體中的實際物件。

80
00:04:22.240 --> 00:04:25.990
它只是從當前名稱空間中刪除該名稱，以便您無法再使用它

81
00:04:26.440 --> 00:04:30.130
因為所有的魔法。我仍然不知道在哪裡定義了什麼。

82
00:04:30.140 --> 00:04:32.710
那麼讓我們看看另一個文件。

83
00:04:32.720 --> 00:04:35.580
我們先來看看運算符，看看有哪些運算符。

84
00:04:35.580 --> 00:04:40.360
有很多東西正在進口更多東西來自呃哦，

85
00:04:40.440 --> 00:04:44.370
如果您必須從該模組匯入這麼多名稱，

86
00:04:44.380 --> 00:04:47.760
我寧願只導入模組本身，

87
00:04:47.940 --> 00:04:52.090
就像從導入函數然後呼叫函數，開始更新，

88
00:04:52.090 --> 00:04:54.250
親愛的，檢視器或功能不明白。

89
00:04:54.260 --> 00:04:56.870
那樣。更容易再次看到事物的來源。

90
00:04:56.880 --> 00:05:03.710
這應該是程式碼的核心。哦，拜託。只是不，不要，不，不要這樣做。

91
00:05:03.720 --> 00:05:07.260
就像最後你的程式碼 python 是基於發明的

92
00:05:07.540 --> 00:05:08.350
和

93
00:05:08.640 --> 00:05:12.060
如果你這樣寫，就很難看出發生了什麼事。

94
00:05:12.070 --> 00:05:17.750
嗯，如果修改列表的長度不等於零。

95
00:05:17.760 --> 00:05:21.610
這意味著如果裡面有東西自動指向，

96
00:05:21.610 --> 00:05:24.910
可以將事情轉化為對你的霸凌。

97
00:05:24.920 --> 00:05:26.360
所以，所以一個清單。

98
00:05:26.360 --> 00:05:30.060
如果為空則視為 false，如果不為空則視為 true。

99
00:05:30.140 --> 00:05:33.270
所以這意味著你可以說如果修改了列表

100
00:05:33.280 --> 00:05:36.730
而不是土地修改列表不等於零。

101
00:05:36.740 --> 00:05:40.650
我有點超前了。讓我們來看看。 WMS 上下文視窗管理器。

102
00:05:40.650 --> 00:05:44.860
好吧，夠了。這裡沒有使用這裡沒有使用。這樣就可以利用了。

103
00:05:44.860 --> 00:05:45.460
降低。

104
00:05:45.740 --> 00:05:49.100
嗯，然後修改後的列表和丟失的列表實際上是修改後的圖像。

105
00:05:49.100 --> 00:05:52.470
所以我猜測會重新載入所有修改過的圖片，

106
00:05:52.470 --> 00:05:54.350
就像在磁碟上修改的映像一樣。

107
00:05:54.440 --> 00:05:57.260
所以最好將其放在一個單獨的函數中。那挺好的。

108
00:05:57.940 --> 00:06:02.580
因此，如果圖像發生修改，我們會更新檢視器，這也很好。

109
00:06:02.590 --> 00:06:04.790
它還傳遞了上下文。這也很好。

110
00:06:04.800 --> 00:06:08.160
呃，我不知道為什麼這裡沒有上下文。也許沒有必要。

111
00:06:08.160 --> 00:06:11.440
也許使用全域上下文。我不知道這裡有風格衝突。

112
00:06:11.440 --> 00:06:14.650
所以這裡使用駝峰式大小寫，使用底線

113
00:06:14.840 --> 00:06:16.690
嗯，選擇一個並堅持下去。

114
00:06:16.690 --> 00:06:19.880
我想說選擇 pep 8 中記錄的 python 風格，

115
00:06:19.880 --> 00:06:23.060
這意味著在此處使用下劃線表示函數

116
00:06:23.840 --> 00:06:26.060
如果沒有遺失影像，

117
00:06:27.440 --> 00:06:31.690
自動重新載入遺失的圖像，否則是錯誤的。自動重新載入遺失的圖片。

118
00:06:31.690 --> 00:06:34.870
這是真的嗎？好吧，你可以在這裡重寫它。

119
00:06:34.870 --> 00:06:38.750
我的程式碼編輯器也有同樣的功能，所以我可以告訴你我的意思

120
00:06:39.440 --> 00:06:42.860
首先，我將重新發明它。這已經好一點了。

121
00:06:43.640 --> 00:06:46.760
現在，如果我們比較一下，上面的 F 會發生什麼，

122
00:06:46.770 --> 00:06:52.030
我們可以看到，如果土地修改器清單不為零，那麼我們就做一些事情。

123
00:06:52.030 --> 00:06:52.170
所以，

124
00:06:52.170 --> 00:06:57.690
首先我們檢查該列表是否有元素，然後我們有一個非常相似的

125
00:06:57.690 --> 00:07:00.130
尋找 if 語句來檢查它是否是

126
00:07:00.130 --> 00:07:02.450
空了，這會消耗你的腦力。

127
00:07:03.040 --> 00:07:04.120
所以我想說

128
00:07:04.730 --> 00:07:06.550
如果修改了列表，

129
00:07:07.040 --> 00:07:07.750
就是這樣。

130
00:07:07.760 --> 00:07:09.670
如果修改列表，則更新查看者，

131
00:07:09.670 --> 00:07:13.890
上下文如果他們的更新檢視器中有任何內容，這是

132
00:07:13.890 --> 00:07:17.320
方法更簡單，我們也可以做類似的事情。

133
00:07:17.320 --> 00:07:20.300
但這會檢查它是否為空，因此它是空的。

134
00:07:20.300 --> 00:07:25.660
如果它不為空，它就會執行此操作。所以這檢查它是否為空

135
00:07:26.240 --> 00:07:30.860
如果沒有遺漏列表，那麼你可以寫這個，然後說一些錯誤的東西。

136
00:07:30.860 --> 00:07:31.880
說了句實話。

137
00:07:31.890 --> 00:07:35.010
我不太喜歡 if not 與 else 結合使用

138
00:07:35.060 --> 00:07:38.400
如果你要同時處理真假案件

139
00:07:38.410 --> 00:07:42.460
無論如何，你不妨透過以下方式擺脫否定

140
00:07:42.470 --> 00:07:44.660
交換 F 中的內容和 else 中的內容？

141
00:07:45.540 --> 00:07:51.560
所以我將 equals 向下移動，將 equals true 向上移動，然後將它們刪除，而不是在這裡

142
00:07:52.340 --> 00:07:55.800
現在。你所擁有的是連續兩張支票

143
00:07:55.970 --> 00:07:59.560
做同樣的事情。如果修改了列表，請執行某些操作

144
00:07:59.940 --> 00:08:03.000
如果缺少列表，請執行其他操作。反其道而行。

145
00:08:03.200 --> 00:08:06.650
像這樣的改進很酷的一點是它確實有幫助

146
00:08:06.650 --> 00:08:10.060
你的程式碼的可讀性，我實際上經常這樣做。

147
00:08:10.060 --> 00:08:14.280
一旦我寫完程式碼，我會回去說，好吧，現在可以了，

148
00:08:14.280 --> 00:08:17.440
我可以改進它嗎？

149
00:08:17.440 --> 00:08:18.960
我們可以更進一步

150
00:08:19.140 --> 00:08:21.870
因為基本上這就是說如何

151
00:08:21.870 --> 00:08:25.360
當有遺失的圖像時重新載入遺失的圖像。

152
00:08:25.370 --> 00:08:27.750
所以我們可以把它寫成一個表達式。

153
00:08:29.740 --> 00:08:32.860
這做了完全相同的事情

154
00:08:33.340 --> 00:08:36.470
如果缺少清單被認為是真正的牛市。

155
00:08:36.470 --> 00:08:39.510
缺少列表為 true 並將 true 指派給 auto。

156
00:08:39.510 --> 00:08:43.610
重新加載丟失的圖像，當列表為空時也是如此，它是還是錯誤？

157
00:08:43.620 --> 00:08:46.960
所以這一行表達了你真正想要的。

158
00:08:46.970 --> 00:08:50.260
當存在遺失影像時，也要重新檢查遺失的影像。

159
00:08:50.740 --> 00:08:52.870
剩下的教練好像是為了調試

160
00:08:52.870 --> 00:08:55.750
在這裡您也可以看到導入的問題

161
00:08:56.340 --> 00:09:02.040
如果您匯入 如果您從全域變數匯入 已簽署的 Kumar 已重新載入。

162
00:09:02.050 --> 00:09:05.550
現在你突然在這裡簽名並重新加載並失踪

163
00:09:06.040 --> 00:09:08.460
很難看出它是從哪裡來的。

164
00:09:09.540 --> 00:09:10.930
讓我們繼續添加。

165
00:09:10.940 --> 00:09:14.020
下一個函數是加載前面並立即

166
00:09:14.020 --> 00:09:15.750
我看到一些我真的不喜歡的東西

167
00:09:16.240 --> 00:09:17.950
try except 區塊的區域

168
00:09:18.440 --> 00:09:22.470
except 它只是一個裸露的 except 所以它會捕獲任何東西。

169
00:09:22.480 --> 00:09:25.710
這意味著當使用者按下鍵盤按鈕時它也會捕獲鍵盤中斷

170
00:09:25.710 --> 00:09:29.330
按控制 C 中斷某些懸掛操作。

171
00:09:29.340 --> 00:09:33.270
它會捕獲任何錯誤，包括您根本不想捕獲的錯誤。

172
00:09:33.280 --> 00:09:38.270
然後這段程式碼出現了競爭異常。它不再包含任何東西。

173
00:09:38.270 --> 00:09:40.920
因此，當原始異常提供時

174
00:09:40.920 --> 00:09:43.360
有關出了什麼問題的一些資訊。

175
00:09:43.440 --> 00:09:47.620
也許資金無法加載，也許是字體損壞的記憶。

176
00:09:47.620 --> 00:09:49.050
也許還有其他問題。

177
00:09:49.640 --> 00:09:50.450
你永遠不知道。

178
00:09:50.840 --> 00:09:51.040
是的，

179
00:09:51.440 --> 00:09:56.170
所以只需刪除它即可，否則，這段程式碼非常簡單，所以沒關係。

180
00:09:56.180 --> 00:09:56.710
一，

181
00:09:56.720 --> 00:10:00.500
我真正想看到的最後一件事是一些關於什麼的文檔

182
00:10:00.500 --> 00:10:05.310
self 就是這種情況，因為當你從上到下瀏覽程式碼時，

183
00:10:05.310 --> 00:10:06.910
你不知道那是什麼。

184
00:10:06.920 --> 00:10:11.120
讓我們快速瀏覽一下下一個運算子。這是實際的重新加載計時器。

185
00:10:11.130 --> 00:10:14.800
因為這個影片已經持續了很長一段時間了，所以一切都已經結束了

186
00:10:14.800 --> 00:10:18.750
進入快速上升模式，這裡我們有 os 路徑的 os 路徑連接。

187
00:10:18.750 --> 00:10:21.030
那沒有必要。你可以這樣做。

188
00:10:21.030 --> 00:10:23.110
我不會創建常規的 python 屬性

189
00:10:23.110 --> 00:10:25.720
與貸方屬性相同，但屬性錯誤除外。

190
00:10:25.720 --> 00:10:26.960
不，只要修復你的程式碼，

191
00:10:26.960 --> 00:10:30.340
確保沒有屬性錯誤與 false 比較，不。

192
00:10:30.350 --> 00:10:31.960
如果沒有就做

193
00:10:32.540 --> 00:10:33.960
回國後的其他情況。

194
00:10:33.970 --> 00:10:35.130
不，我不會這麼做，

195
00:10:35.140 --> 00:10:37.250
你可以這樣做，這意味著你

196
00:10:37.250 --> 00:10:40.550
可以翻轉這個條件然後返回，

197
00:10:40.550 --> 00:10:43.270
透過這個事件我們可以再做一次。

198
00:10:43.280 --> 00:10:46.760
存在，如果不是別的東西的話。那你可以翻轉它

199
00:10:47.240 --> 00:10:50.700
然後這樣做，現在我已經發明了這個程式碼兩倍的程式碼，

200
00:10:50.710 --> 00:10:51.820
我們以前見過它。

201
00:10:51.830 --> 00:10:54.770
不，不要在函數的地方這樣做，把程式碼放在那裡，

202
00:10:54.770 --> 00:10:56.230
從兩個不同的地方調用它。

203
00:10:56.240 --> 00:10:58.560
其餘程式碼幾乎遵循相同的風格。

204
00:10:58.560 --> 00:11:01.110
所以我不會再經歷那件事了。非常感謝。

205
00:11:01.110 --> 00:11:05.150
湯頓借給我你的程式碼來進行烘焙，讓我們繼續下一個。

206
00:11:05.340 --> 00:11:10.970
所以下一個成年人就在一個立方體旁邊，他非常切中要點，玫瑰我的補充。那麼我們就開始吧。

207
00:11:10.980 --> 00:11:14.160
它也被稱為他自己的 Git 中心，因此我們可以滾動瀏覽它。

208
00:11:14.170 --> 00:11:18.580
我看到一堆文件，其中包括 rip me，這很好。它有一些例子。

209
00:11:18.590 --> 00:11:22.070
它顯示了它可以做什麼。德國人喜歡稱投影機。投影機。

210
00:11:22.070 --> 00:11:23.810
其實在荷蘭也一樣。

211
00:11:23.820 --> 00:11:28.350
讓我們來看看 init 餅圖，因為這是所有匯入日誌記錄開始的地方。

212
00:11:28.540 --> 00:11:32.370
涼爽的。好的。嗯，單獨進口。這也不錯。

213
00:11:32.380 --> 00:11:36.830
帳單資訊似乎很完整，不是。不要這樣做。

214
00:11:36.840 --> 00:11:41.960
這配置了 python 的整個日誌記錄模組，並且基本上強制每個

215
00:11:41.960 --> 00:11:45.850
使用者以特定格式對所有內容進行偵錯日誌記錄。

216
00:11:45.940 --> 00:11:46.830
這確實是，

217
00:11:46.830 --> 00:11:48.940
這是你應該留給使用者的事情

218
00:11:48.940 --> 00:11:52.010
或其他開發人員控制他們的系統。

219
00:11:52.020 --> 00:11:56.160
另外，這裡的日誌根本沒有被使用。所以創建它沒有意義。

220
00:11:56.540 --> 00:11:59.520
好的。每個模組單獨註冊和未註冊的函數。

221
00:11:59.520 --> 00:12:04.310
這就是我喜歡看到的。那我們來看看運營商。只有一個。

222
00:12:04.320 --> 00:12:08.510
它用周期設定渲染引擎。讓我們來看看投影機本身。

223
00:12:08.510 --> 00:12:09.650
我有點期待

224
00:12:09.840 --> 00:12:13.780
將新投影機新增至場景的操作員。

225
00:12:13.790 --> 00:12:16.950
以同樣的方式，我們將猴子網格新增到網格選單中。

226
00:12:17.240 --> 00:12:19.580
同樣，您將記錄基本衝突稱為記錄，

227
00:12:19.590 --> 00:12:22.070
這再次覆蓋您的配置

228
00:12:22.070 --> 00:12:23.950
剛才在不同的模組中說過。

229
00:12:23.950 --> 00:12:26.470
所以這確實是一種奇怪的處理方式。

230
00:12:26.480 --> 00:12:29.690
正如我之前所說，我不喜歡將模組稱為助手。

231
00:12:29.690 --> 00:12:33.310
諸如此類的雜項。但讓我們來看看這些。

232
00:12:33.320 --> 00:12:37.460
取得投影機取得上下文並僅選擇預設為 false 的值。

233
00:12:37.740 --> 00:12:41.810
但是當您查看參考文獻時，您只能在只有 selected 為 true 的情況下呼叫它。

234
00:12:41.820 --> 00:12:45.190
那麼為什麼不直接命名該函數獲取選定的投影機並

235
00:12:45.190 --> 00:12:48.850
預設情況下，使用隨機顏色 Alpha 等於 false 來結束它。

236
00:12:48.850 --> 00:12:49.920
您只使用它兩次。

237
00:12:49.920 --> 00:12:52.940
那為什麼不刪除預設值並只傳遞 alpha

238
00:12:52.940 --> 00:12:54.820
是真的，阿爾法是假的，然後你

239
00:12:54.820 --> 00:13:00.250
明確地說我喜歡的是你說阿爾法是真實的，而不僅僅是真實的。

240
00:13:00.260 --> 00:13:03.810
這使得該特定通話中發生的情況變得更加清晰。

241
00:13:03.820 --> 00:13:07.320
那麼對於程式碼的其餘部分，您定義了一些很好的東西，

242
00:13:07.320 --> 00:13:08.600
但我來這裡不是為了友善

243
00:13:08.870 --> 00:13:13.680
然後是投影機。 Ot 隨機改變顏色。我們看到的第一個運算符。

244
00:13:13.690 --> 00:13:16.060
為什麼這不在操作員模組中？

245
00:13:16.070 --> 00:13:19.350
發生了一些奇怪的事情，因為 poll 方法只允許

246
00:13:19.360 --> 00:13:22.950
當所選投影機的數量等於一台時所呼叫的運算子。

247
00:13:23.040 --> 00:13:24.360
但然後你選擇。

248
00:13:24.370 --> 00:13:27.770
但在這裡，你拿著所有的投影機來觀察它們。

249
00:13:27.770 --> 00:13:31.760
因此，如果您選擇了多個，則實際上攪拌機將成為攪拌機。

250
00:13:31.760 --> 00:13:34.780
這基本上是處理活動對象之間的區別

251
00:13:34.780 --> 00:13:38.550
致力於選擇，這段程式碼似乎混淆了兩者。

252
00:13:38.560 --> 00:13:40.760
然後使用函數創建項目紋理。

253
00:13:40.940 --> 00:13:43.620
您可以根據解析度建構圖像名稱，這很好。

254
00:13:43.630 --> 00:13:47.210
然後檢查圖像是否存在，然後使用

255
00:13:47.220 --> 00:13:50.860
運算符來實際創建圖像（如果尚不存在）。

256
00:13:51.740 --> 00:13:55.180
這種方法的問題是該操作符可能會創建

257
00:13:55.180 --> 00:13:57.380
與您指定的名稱不同的影像。

258
00:13:57.390 --> 00:14:01.260
即使具有該名稱的圖像也已經存在。它只會附加 001。

259
00:14:01.270 --> 00:14:04.580
這意味著該行實際上可能會存取錯誤的圖像。

260
00:14:04.590 --> 00:14:08.260
現在，由於前面有一行，發生這種情況的可能性幾乎為零。

261
00:14:08.340 --> 00:14:10.500
但我永遠不會用這個。反正。

262
00:14:10.510 --> 00:14:13.670
在這裡，我們已經解碼了我的編輯器，以便我可以向您展示我要做的一些更改。

263
00:14:13.680 --> 00:14:17.870
因此，我不會將其放在 f 中，而是會說圖像是這個嗎？

264
00:14:17.880 --> 00:14:21.310
這個 get 函數基本上意味著給我一個具有該名稱的圖像。

265
00:14:21.320 --> 00:14:24.350
如果不存在，不要拋出錯誤，而只是返回none。

266
00:14:24.360 --> 00:14:29.760
如果不是圖像，則建立一個新圖像。你可以這樣做，

267
00:14:30.640 --> 00:14:33.290
這會創建完全相同的圖像，除了它給你

268
00:14:33.290 --> 00:14:35.680
對剛剛建立的資料區塊的引用。

269
00:14:35.690 --> 00:14:38.310
因此，即使這個名字不可用，他們

270
00:14:38.310 --> 00:14:40.980
選擇其他事情或發生完全不同的事情。

271
00:14:40.990 --> 00:14:44.200
您獲得您感興趣的實際圖像資料塊

272
00:14:44.330 --> 00:14:46.240
然後你可以設定它的屬性。

273
00:14:46.250 --> 00:14:46.830
在這之中，

274
00:14:46.870 --> 00:14:50.230
在這種情況下，我們必須設定生成的類型，因為我們不能直接傳遞它

275
00:14:50.230 --> 00:14:54.850
對於新功能，這只能使用圖像點，使用假用戶是正確的。

276
00:14:54.860 --> 00:14:57.450
我認為這讀起來更好一點，而且

277
00:14:57.450 --> 00:15:00.580
對幕後發生的事情做出更少的假設。

278
00:15:00.820 --> 00:15:02.880
下一個函數在投影機上呼叫。

279
00:15:02.880 --> 00:15:05.000
沒有一棵樹可以發現，我認為這是一個相當大的樹

280
00:15:05.000 --> 00:15:07.590
好名字，因為它準確地說明了它在做什麼。

281
00:15:07.600 --> 00:15:11.650
它被記錄為該功能將聚光燈變成投影儀

282
00:15:11.840 --> 00:15:13.650
這是我們第一次了解到

283
00:15:13.650 --> 00:15:16.370
投影機實際上被建模為聚光燈。

284
00:15:16.380 --> 00:15:18.410
這實際上是我所期望的

285
00:15:18.410 --> 00:15:20.840
閱讀我的內容，而不是在某些程式碼中間。

286
00:15:20.850 --> 00:15:23.020
所以當我們向下滾動時我注意到的是

287
00:15:23.020 --> 00:15:25.150
與攪拌機版本進行比較。

288
00:15:25.160 --> 00:15:26.570
我認為這是一個好主意。

289
00:15:26.580 --> 00:15:29.560
唯一的事情是輸入區域上的索引

290
00:15:29.560 --> 00:15:32.610
也可以在輸入中使用字串而不是寫入

291
00:15:32.610 --> 00:15:35.800
三個你也可以寫出字串比例原子的其餘部分

292
00:15:35.800 --> 00:15:39.430
很無聊，因為寫的程式碼非常清楚它在做什麼。

293
00:15:39.470 --> 00:15:42.810
我唯一的評論是它還可以使用更多評論。

294
00:15:42.820 --> 00:15:46.540
那麼，讓我們繼續討論我今天要烤的最後一個成人。

295
00:15:46.580 --> 00:15:49.130
安比想知道你要讀多久的書

296
00:15:49.130 --> 00:15:51.810
寫得好，不只要你的廣告。

297
00:15:51.820 --> 00:15:55.950
他將混合紋理工具添加到混合器中以進行簡單的圖像處理

298
00:15:56.140 --> 00:16:00.220
我希望原始碼像描述一樣簡單。

299
00:16:00.230 --> 00:16:04.740
因此，當我查看該檔案時，我已經注意到這裡有一個 get 子模組。

300
00:16:04.750 --> 00:16:08.270
取得一些模組是組合多個 Git 儲存庫的一種方法

301
00:16:08.270 --> 00:16:11.650
到一個專案中，我想添加一個攪拌機。

302
00:16:11.650 --> 00:16:15.200
這實際上可能是矯枉過正了。讓我們從餡餅的末尾重新開始。

303
00:16:15.210 --> 00:16:17.460
免費軟體，非常好用。

304
00:16:17.640 --> 00:16:20.470
現在我們有了一些重要的魔法。

305
00:16:20.480 --> 00:16:23.130
Numpy是一個Python庫，可以讓你做數字

306
00:16:23.130 --> 00:16:25.800
處理並且擅長處理大量資料。

307
00:16:25.800 --> 00:16:28.000
所以認為對於這個特殊的情況來說這是一個不錯的選擇

308
00:16:28.000 --> 00:16:30.140
成人，因為它必須處理圖像。

309
00:16:30.150 --> 00:16:33.390
但剩下的顯然 Q 派基本上是

310
00:16:33.390 --> 00:16:36.850
庫允許您執行與 Numpy 相同的操作，但隨後

311
00:16:36.850 --> 00:16:40.100
再次在你的 GPU 上添加一個我認為這是一個不錯的選擇

312
00:16:40.100 --> 00:16:43.410
在這裡使用，但它的處理方式真的很奇怪。

313
00:16:43.420 --> 00:16:46.290
可以將 active 設為 false 或 true，取決於

314
00:16:46.290 --> 00:16:48.250
關於提示點是否已載入。

315
00:16:48.260 --> 00:16:51.560
對我來說，這件外套看起來像是在嘗試使用杯子 i（如果存在的話）

316
00:16:51.560 --> 00:16:56.350
從系統中，它可以被加載，否則回退到 Numpy。

317
00:16:56.360 --> 00:16:57.030
然而，

318
00:16:57.030 --> 00:17:01.060
這並不是真正令人困惑的讀法，最後我不明白

319
00:17:01.060 --> 00:17:03.400
知道其餘程式碼將使用什麼。

320
00:17:03.940 --> 00:17:06.180
讓我舉一個例子來說明我將如何做到這一點。

321
00:17:06.190 --> 00:17:06.960
所以首先，

322
00:17:06.960 --> 00:17:09.500
我假設我們想要使用 Q 派，除非

323
00:17:09.500 --> 00:17:11.910
這是不可用的，然後我們想使用裁判。

324
00:17:11.920 --> 00:17:16.270
但最終程式碼將使用一個或另一個庫。

325
00:17:16.339 --> 00:17:19.440
所以嘗試導入佔用是可以的。

326
00:17:19.450 --> 00:17:23.880
但讓我們將其導入為 np importing Numpy S n p 是

327
00:17:23.880 --> 00:17:27.319
非常常見，因為該前綴在程式碼中被大量使用。

328
00:17:27.329 --> 00:17:30.450
兩個字母和五個字母之間的差異將是相當大的

329
00:17:30.460 --> 00:17:33.660
考慮到典型線路上的意義數量。

330
00:17:33.660 --> 00:17:37.810
因此，讓我們繼續使用該 mp 並使用 Q 派作為替代品。

331
00:17:37.820 --> 00:17:39.690
所以我們要嘗試導入 Q 派。

332
00:17:40.040 --> 00:17:44.900
如果失敗，他們將導入 Numpy ，兩者最終都會作為 mp 名稱。

333
00:17:44.900 --> 00:17:46.620
所以一旦完成這件事，

334
00:17:46.630 --> 00:17:51.560
我們可以直接說 mp dot ，它就會使用這裡加載的任何內容。

335
00:17:51.640 --> 00:17:54.600
這立即向讀者展示了正在發生的事情

336
00:17:54.600 --> 00:17:57.160
這裡以及這段程式碼背後的意圖是什麼。

337
00:17:57.640 --> 00:17:57.920
現在，

338
00:17:57.920 --> 00:18:01.920
我已經向前看了一點，kuna Active 僅用於

339
00:18:01.920 --> 00:18:06.680
亞當偏好中的一個地方說古巴激進分子是否錯誤。

340
00:18:06.680 --> 00:18:13.520
好吧，如果 np 點名稱等於 numpy，我們現在可以正確地代替這個，這可以避免

341
00:18:13.520 --> 00:18:15.300
全程追蹤已載入的內容和已載入的內容

342
00:18:15.300 --> 00:18:17.670
不是因為 python 已經為我們做到了這一點。

343
00:18:18.340 --> 00:18:21.030
所以優惠券是一個你可以安裝的庫。

344
00:18:21.040 --> 00:18:23.440
它不與攪拌機捆綁在一起，所以

345
00:18:23.440 --> 00:18:25.620
製作了一個可以為我們下載的運營商，

346
00:18:25.620 --> 00:18:26.590
這非常好。

347
00:18:26.600 --> 00:18:31.000
但他的做法與進口煤炭的分加工不太一樣。

348
00:18:31.010 --> 00:18:34.550
我不會那麼做，因為這樣你的名字裡面就有了煤炭的名字，

349
00:18:34.550 --> 00:18:35.350
那裡有空間

350
00:18:35.540 --> 00:18:38.700
你會接到這種叫煤炭的電話

351
00:18:38.700 --> 00:18:42.250
並不是很明顯它實際上是在呼叫子程序。

352
00:18:42.250 --> 00:18:46.480
所以我總是說進口工藝，這是煤炭的工藝但是，

353
00:18:46.480 --> 00:18:49.450
呼叫的子進程不會檢查任何錯誤。

354
00:18:49.460 --> 00:18:53.060
所以它可能會完全失敗，而你卻不會知道。

355
00:18:53.440 --> 00:18:54.360
所以代替這個，

356
00:18:54.360 --> 00:18:58.780
使用帶有檢查等於 true 的運行過程作為參數，那麼至少它

357
00:18:58.780 --> 00:19:00.510
將阻止您的指向程式碼運行任何

358
00:19:00.510 --> 00:19:03.830
當下載或安裝失敗時進一步。

359
00:19:03.840 --> 00:19:06.250
在這種情況下，你會遇到雙重問題，因為

360
00:19:06.260 --> 00:19:09.720
在導入 QP 之前，您已經說過古巴積極正確。

361
00:19:09.730 --> 00:19:13.480
因此，即使所有這些輸入都失敗，您的密碼也會再次失敗。

362
00:19:13.490 --> 00:19:17.770
但隨後你的可愛活動已經設定為 true，然後你的狀態就一團糟了。

363
00:19:18.140 --> 00:19:20.450
讓我們再瀏覽一下程式碼。

364
00:19:21.240 --> 00:19:24.730
我看到很多小函數都在做一些非常具體的事情，

365
00:19:24.730 --> 00:19:28.510
這很好，但命名有點奇怪。

366
00:19:28.520 --> 00:19:29.360
什麼是大？

367
00:19:29.740 --> 00:19:32.470
鄰居平均值做了什麼，它回傳什麼？

368
00:19:32.470 --> 00:19:35.460
根本沒有關於任何類型的文檔。

369
00:19:35.460 --> 00:19:39.370
沒有任何類型的符號可以解釋傳回的內容或預期的內容。

370
00:19:39.380 --> 00:19:43.560
特別是當您在這裡使用短變數名稱時。就像哦我和d

371
00:19:44.280 --> 00:19:45.470
我不知道發生了什麼事

372
00:19:45.750 --> 00:19:47.160
零卷

373
00:19:47.740 --> 00:19:48.850
是一個角色零。

374
00:19:49.340 --> 00:19:51.170
為什麼它與捲筒不同

375
00:19:52.640 --> 00:19:57.220
為什麼角色為零 與這裡的廣告卷零不同，

376
00:19:57.220 --> 00:20:00.780
如果您有評論需要解釋參數的含義。

377
00:20:00.780 --> 00:20:04.220
只需以不同的方式命名參數即可，而不是 SSP

378
00:20:04.230 --> 00:20:06.950
命名的故事而不是激烈的命名強度。

379
00:20:07.440 --> 00:20:09.930
所以卷積是一種影像運算。

380
00:20:10.050 --> 00:20:13.310
這裡有一個問題，因為它沒有告訴我們是否

381
00:20:13.310 --> 00:20:17.550
來源圖像已更改或是否返回新圖像。

382
00:20:17.600 --> 00:20:19.790
這是透過此代碼允許的。

383
00:20:19.800 --> 00:20:21.620
還有這個灰階函數，

384
00:20:21.650 --> 00:20:24.110
是否將給定影像轉換為灰階影像

385
00:20:24.120 --> 00:20:26.850
或它傳回影像的灰階副本。

386
00:20:27.040 --> 00:20:29.750
這應該被很好地記錄下來，因為它

387
00:20:29.750 --> 00:20:32.050
確實可以幫助您了解正在發生的事情。

388
00:20:32.840 --> 00:20:36.560
向下捲動大約 1000 行程式碼。

389
00:20:36.940 --> 00:20:41.350
我們得到這些類，它們是圖像運算子產生器的集合類。

390
00:20:41.740 --> 00:20:45.590
這開始變得有點代碼味道。

391
00:20:45.600 --> 00:20:48.930
它有一個名為generate的函數，然後它

392
00:20:48.930 --> 00:20:53.770
將 self 屬性中的某些鍵設定為攪拌機屬性

393
00:20:54.640 --> 00:20:58.600
它設定前綴，它設定資訊和類別

394
00:20:58.810 --> 00:21:01.910
然後它有一個軟有效負載，它是一個 lambda 函數。

395
00:21:01.920 --> 00:21:04.380
我什至不會進入 lambda 函數實際上是

396
00:21:04.380 --> 00:21:06.960
我想知道這個圖像運算符生成器是什麼。

397
00:21:07.340 --> 00:21:11.450
我在另一個文件中找到了它，它是一個子圖運算符產生器。

398
00:21:11.840 --> 00:21:15.220
它以某種方式獲得了一個主名稱

399
00:21:15.220 --> 00:21:18.860
通過開始然後它說 49 點等於跌倒

400
00:21:19.340 --> 00:21:21.860
因為我們已經看到了生成函數。

401
00:21:22.240 --> 00:21:27.060
然後最後它把自己的名字設定為image。 Ot，然後是自己的名字。

402
00:21:27.940 --> 00:21:30.550
所以它甚至不

403
00:21:31.640 --> 00:21:32.360
等待。但

404
00:21:32.840 --> 00:21:38.060
在這裡你根本沒有名字。所以我甚至不知道這個名字從何而來

405
00:21:39.040 --> 00:21:41.220
然後它調用創建了我猜

406
00:21:41.220 --> 00:21:44.510
創建攪拌機操作員，然後它說 self

407
00:21:44.510 --> 00:21:48.450
點 org 點 1st 99 點等於自力

408
00:21:48.450 --> 00:21:51.160
一個已經被設定為假髮的帝國。

409
00:21:53.440 --> 00:21:57.150
我在 get stop 模組內找到了運算子產生器。

410
00:21:57.160 --> 00:22:00.090
所以我們從這裡開始，它得到了

411
00:22:00.090 --> 00:22:02.840
主名稱，然後指派給父名稱。

412
00:22:02.840 --> 00:22:06.670
可見，父母才是主人。我什至不知道這意味著什麼

413
00:22:07.240 --> 00:22:11.670
嗯，它說的是自我有效負載，而不是具有有效負載功能。

414
00:22:12.140 --> 00:22:12.640
一，

415
00:22:12.650 --> 00:22:15.010
然後還有一堆其他的東西要清空但是

416
00:22:15.010 --> 00:22:17.660
不是最後設定的名稱

417
00:22:18.640 --> 00:22:23.950
還有一個 Creator oB 函數可以動態建立一個新類別。

418
00:22:24.340 --> 00:22:28.270
我認為這是聰明的代碼，但有點太聰明了。

419
00:22:28.740 --> 00:22:33.040
很難跟上。尤其是當你進入攪拌機時

420
00:22:33.240 --> 00:22:35.360
並且這些運營商已經註冊

421
00:22:35.840 --> 00:22:39.110
然後您想要搜尋該運算符的建立位置。

422
00:22:39.110 --> 00:22:40.360
你永遠找不到它。

423
00:22:40.840 --> 00:22:44.110
類別大寫的命名約定，然後

424
00:22:44.120 --> 00:22:47.260
底線 O T 下劃線，然後是標識符的其餘部分

425
00:22:47.840 --> 00:22:50.700
這非常有用，因為到處都在使用它。

426
00:22:50.700 --> 00:22:55.220
如果你有 Bp 點暴發戶，你可以應用這些規則

427
00:22:55.220 --> 00:22:58.210
然後你可以在攪拌機中為類別名稱指定一個名稱。

428
00:22:58.210 --> 00:23:02.450
在原始碼和這種結構中很容易找到它，

429
00:23:02.940 --> 00:23:04.160
這個名字不存在。

430
00:23:04.170 --> 00:23:06.840
我認為這段程式碼的優點是

431
00:23:06.840 --> 00:23:09.920
親自新增操作員非常容易。

432
00:23:09.920 --> 00:23:13.560
我會讓程式碼稍微大一點，類型多一點

433
00:23:13.940 --> 00:23:18.040
但然後把所有東西都放在應該很容易找到的地方，

434
00:23:18.040 --> 00:23:20.640
很容易理解事物是如何創建的。

435
00:23:20.700 --> 00:23:22.960
好吧，我們已經走到最後了。

436
00:23:22.970 --> 00:23:25.280
我希望你跟我一樣喜歡這次上漲

437
00:23:25.280 --> 00:23:28.770
我最後的想法是把事情命名好，

438
00:23:28.780 --> 00:23:31.960
這樣你以後在閱讀的時候就不用動腦子了，

439
00:23:32.440 --> 00:23:36.930
儘早返回並改變這些條件，看看是否會有所不同。

440
00:23:36.970 --> 00:23:38.600
這就是本集的內容。

441
00:23:38.600 --> 00:23:42.360
如果您有任何問題或意見，請在下面留下，我很快就會見到您。



