跳到主要內容

發表文章

Python面試進階問題,__init__和__new__的區別是什麼?

本文始發於個人公眾號: TechFlow ,原創不易,求個關注 今天這篇是 Python專題 的第17篇文章,我們來聊聊Python當中一個新的默認函數__new__。 上一篇當中我們講了如何使用type函數來動態創建Python當中的類,除了type可以完成這一點之外,還有另外一種用法叫做metaclass。原本這一篇應該是繼續元類的內容,講解metaclass的使用。但是metaclass當中用到了一個 新的默認函數__new__ ,關於這個函數大家可能會比較陌生,所以在我們研究metaclass之前,我們先來看看__new__這個函數的用法。 真假構造函數 如果你去面試Python工程師的崗位,面試官問你,請問Python當中的類的 構造函數 是什麼? 你不假思索,當然是__init__啦!如果你這麼回答,很有可能你就和offer無緣了。因為在Python當中__init__並不是構造函數,__new__才是。是不是有點蒙,多西得(日語:為什麼)?我們不是一直將__init__方法當做構造函數來用的嗎?怎麼又冒出來一個__new__,如果__new__才是構造函數,那麼 為什麼我們創建類的時候從來不用它呢? 別著急,我們慢慢來看。首先我們回顧一下__init__的用法,我們隨便寫一段代碼: class   Student :      def   __init__ (self, name, gender) :         self.name = name         self.gender = gender 我們一直都是這麼用的,對不對,毫無問題。但是我們換一個問題,我們在Python當中怎麼實現單例(Singleton)的設計模式呢?怎麼樣實現工廠呢? 從這個問題出發,你會發現只使用__init__函數是不可能完成的,因為__init__並不是構造函數,它只是 初始化方法 。也就是說在調用__init__之前,我們的...

超強教程!在樹莓派上構建多節點K8S集群!

在很長一段時間里,我對於在樹莓派上搭建Kubernetes集群極為感興趣。在網絡上找到一些教程並且跟着實操,我已經能夠將Kubernetes安裝在樹莓派上,並在三個Pi集群中工作。然而,在master節點上對於RAM和CPU的要求已經超過了我的樹莓派所能提供的,因此在執行Kubernetes任務時性能並不優異。這也使得就地升級Kubernetes成為不可能。 所以,我看到業界應用最為廣泛的Kubernetes管理平台創建者Rancher Labs推出輕量級Kubernetes發行版K3s時,十分興奮,它專為資源受限場景而設計,還針對ARM處理器進行了優化,這使得在樹莓派上運行Kubernetes更加可行。在本文中,我將使用K3s和樹莓派創建一個Kubernetes集群。 前期準備 要創建本文中的Kubernetes集群,我們需要準備: 至少一個樹莓派(帶有SD卡和電源適配器) 以太網電纜 將我們所有的樹莓派連接在一起的交換機或路由器 我將從網絡上安裝K3s,所以需要通過路由器訪問互聯網。 集群架構 對於這一集群,我們將使用3個樹莓派。第一個樹莓派我把它命名為kmaster,並分配一個靜態IP 192.168.0.50(因為我的本地網絡是192.168.0.0/24)。第一個worker節點(也就是第二個Pi),我們稱它為knode1並分配IP 192.168.0.51。最後一個worker節點,我們稱它為knode2並分配IP 192.168.0.52。 當然如果你的網絡和我不一樣,可以使用你能夠獲得網絡IP。只要在本文使用IP的任何地方替換你自己的值即可。 為了不必再通過IP引用每個節點,我們將其主機名添加到PC上的/ etc / hosts文件中。 echo -e "192.168.0.50\tkmaster" | sudo tee -a /etc/hosts echo -e "192.168.0.51\tknode1" | sudo tee -a /etc/hosts echo -e "192.168.0.52\tknode2" | sudo tee -a /etc/hosts 安裝master節點 現在我們已經準...

程序員過關斬將--作為一個架構師,我是不是應該有很多職責?

每一個程序員都有一個架構夢。 上面其實本質上是一句富有事實哲理的廢話,要不然也不會有這麼多人關注你的公眾號。這些年隨着"企業数字化"轉型的口號,一大批企業奔跑在轉型的路上,希望領先一步對手將企業IT部門從單純的成本中心轉變為業務驅動者,而這個過程中,企業的架構師起着舉足輕重的作用。架構師的工作在很多擼碼的開發者眼中是很一項很神聖的工作,而且富有挑戰性。 但是事物都有兩面性,很多管理者和技術人員都認為架構師的薪酬不符合實際,有很多架構師確實只會用PPT和大幅海報來應付了事,而且會依仗着在公司地位把自己的一些想法強加給公司其他同事,有的架構師甚至會追求一些無關緊要的概念,在高層和底層灌輸一些錯誤的思想,從而導致做出一些不可逆轉的糟糕決策,使公司陷入危險逆境。 很多時候,公司給予架構師這個角色太多的責任,管理者希望他們能在突發性能問題時能快速解決問題,還能推動企業快速轉型,甚至能幫助企業文化的快速建立,作為一個架構師是不是要抗下這些職責呢? 我不是項目經理 架構師的日常工作經常會面臨并行處理多個不同維度的問題,這些問題可能是不同的主題,甚至在做決策的時候也需要考慮人員的分配,項目時間表的排期,需要用的核心技術以及組件等。有很多高層領導喜歡直接在架構師這裏獲取項目的詳細信息以及技術方案,雖然架構師角色涉及這些信息並且很了解這些信息,但是這並不是架構師的職責所在,甚至很多情況下令架構師處於項目經理的尷尬角色。 我不是開發人員 我想很多人看過那篇文章:作為架構師該不該寫代碼?很多架構師是出身於開發人員,這也難怪會出現這樣的疑問。但是,架構師其實和資深開發是兩條不同的職業路線,我認為兩者沒有高低之分。出色的開發人員需要很深的開發功力,需要最終交付出可運行的軟件。而架構師則需要更廣闊的知識面,更好的組織戰略思想,更好的溝通能力。在一個產品的開發流水線上,架構師可能會負責一部分核心代碼的編寫,但是最主要的工作還是保證這條流水線的正常運轉。 我不是救火員 由於架構師這個角色在公司的地位,很多管理者認為架構師要隨時隨地的能分析並解決任何突發的問題,不瞞各位,這種現象在很多大廠依然存在,包括我司(雖然只是一個四線小廠)。如果一個架構師每天都忙着"救火"這種工作,根本沒有時間去做真正的架構工作,真正的架構設...

Autoware 標定工具 Calibration Tool Kit 聯合標定 Robosense-16 和 ZED 相機!

一、安裝 Autoware & ZED 內參標定 & 外參標定準備 之前的這篇文章:Autoware 進行 Robosense-16 線雷達與 ZED 雙目相機聯合標定! 記錄了我用 Autoware 標定相機和雷達的過程,雖然用的不是 Calibration Tool Kit 工具,但是博客裏面的以下章節也適用本次的 Calibration Tool Kit : 一、編譯安裝 Autoware-1.10.0 二、標定 ZED 相機內參 3.1 聯合標定準備 如果你是第一次看這篇 Calibration Tool Kit 聯合標定的博客,建議先按照之前的博客安裝 Autoware、標定 ZED 內參和做好外參標定的準備(標定板,錄製標定包等),最好用上篇博客的方法標定一次。 這篇博客我就直接開始介紹使用 Calibration Tool Kit 標定雷達和相機外參的過程! 二、Calibration Tool Kit 聯合標定雷達和 ZED 相機 2.1 啟動 Autoware 先啟動 Autoware-1.10.0,啟動過程中可能需要輸入 root 密碼: # 1. 進入 autoware 的 ros 目錄下 cd autoware-1.10.0/ros # 2. source 環境,zsh 或 bash source devel/setup.zsh[.bash] # 3. 啟動主界面 ./run 切換到 Sensing 選項卡: 2.2 回放雷達相機 Bag 這裏回放時需要更改雷達的話題為 /points_raw ,因為這個工具訂閱的雷達主題是固定的: rosbag play --pause xxx.bag /rslidar_points:=/points_raw 我用的 Robosense 雷達,發布的話題是 rslidar_points ,這個回放默認暫停,防止跑掉數據,按空格繼續或暫停。 2.3 啟動 Calibration Tool Kit 點擊 Calibration Tool Kit 啟動標定工具: 選擇圖像輸入話題,我只用的 ZED 的左圖像話題,如果沒有相機話題,確保前面你已經回放了 bag,選擇好了點擊 OK 確定: ...

自主品牌SUV難道永遠都高端不起來?看了這些車再說!

AEB自動緊急制動、碰撞預警、車道偏離預警、ACC自適應巡航、360°隨動3D全景影像、可以將制動力均勻作用於四輪的电子手剎等等安全配置,都能夠從博越身上看到。而很有意思的一點是,相對於合資品牌把搭載這類配置的SUV定價在將近30萬,博越四驅頂配車型有着一個很為親民的售價--15。 "中國能打造出世界一流的企業嗎?"在20世紀初,這個問題曾被許多人所反覆問道。而隨着時間的過去,我們看到了華為站在智能手機製造商集團的上游,成為出貨量僅次於三星、蘋果的世界第三大智能手機製造商;也看到聯想集團收購IBM個人電腦業務、摩托羅拉等世界知名品牌,在一系列"蛇吞象"式的發展中成為全球最大的pC生產廠商。"中國能打造出世界一流的企業嗎?"這個問題,儼然有一個很明確的答案---能。 ▼自主品牌能造出高端SUV嗎? 那麼在世界汽車工業里,中國又是否能夠走出一個世界性的汽車品牌呢?在全球熱衷於購買SUV的浪潮里,自主品牌又是否能夠打造出受消費者喜愛的高端SUV呢?自主品牌具有這樣的實力嗎?這一系列的問題,值得我們思考。 ▼足以用牛逼去形容的自主品牌 毫無疑問,中國SUV的浪潮是由哈弗H6所帶動的,那動輒數萬輛的月均銷量讓不少中國消費者驚呼"一顆賽艇"(什麼意思自個百度),並由此掀開了自主品牌的大時代。但我認為稱得上自主品牌發展史里程碑的,是傳祺GS4的上市。 9.98-16.18萬的售價,直接擼起袖子掄起胳膊與韓系SUV展開直接的競爭。而更讓人詫異的是,傳祺GS4竟然成功了,頻頻以3萬+的銷量遊走在SUV銷量榜單的三甲位置。廣汽傳祺方面人士表示,售價14.38萬的235T豪華版車型是GS4里最熱銷的車款。隨後榮威RX5、吉利博越等自主品牌SUV不斷跟進,他們都有一個明顯的共通點---售價直逼主流合資品牌,但卻廣受中國消費接受。 為什麼精明的中國消費者會選擇用十多萬的價格買一輛自主品牌SUV?原因顯然不僅是因為價格(相比起韓系SUV,自主品牌SUV的售價並不便宜)。對產品的信賴才是促使他們購買的主要原因。在許多中國消費者所看重的產品質量穩定性方面,廣汽傳祺在今年便已經獲得國際市場調研機構---J.D.power新車質量全行業排名第5名(中國市場),僅次於MINI、馬自達等合資品牌。此外,在...

我去,你竟然還不會用 Java final 關鍵字

寫一篇文章容易嗎?太不容易了,首先,需要一個安靜的環境,這一點就非常不容易。很多小夥伴的辦公室都是開放式的,非常吵,況且上班時間寫的話,領導就不高興了;只能抽時間寫。其次,環境有了,還要有一顆安靜的心,如果心裏裝着其他揮之不去的事,那就糟糕了,呆坐着電腦前一整天也不會有結果。 我十分佩服一些同行,他們寫萬字長文,這在我看來,幾乎不太可能完成。因為我要日更,一萬字的長文,如果走原創的話,至少需要一周時間,甚至一個月的時間。 就如小夥伴們看到的,我寫的文章大致都能在五分鐘內閱讀完,並且能夠保證小夥伴們在閱讀完學到或者溫習到一些知識。這就是我的風格,通俗易懂,輕鬆幽默。 好了,又一篇我去系列的文章它來了:你竟然還不會用 final 關鍵字。 已經晚上 9 點半了,我還沒有下班,因為要和小王一塊修復一個 bug。我訂了一份至尊披薩,和小王吃得津津有味的時候,他突然問了我一個問題:"老大,能給我詳細地說說 final 關鍵字嗎,總感覺對這個關鍵字的認知不夠全面。" 一下子我的火氣就來了,儘管小王問的態度很謙遜,很卑微,但我還是忍不住破口大罵:"我擦,小王,你丫的竟然不會用 final,我當初是怎麼面試你進來的!" 發火歸發火,我這個人還是有原則的,等十點半回到家后,我決定為小王專門寫一篇文章,好好地講一講 final 關鍵字,也希望給更多的小夥伴一些幫助。 儘管繼承可以讓我們重用現有代碼,但有時處於某些原因,我們確實需要對可擴展性進行限制,final 關鍵字可以幫助我們做到這一點。 01、final 類 如果一個類使用了 final 關鍵字修飾,那麼它就無法被繼承。如果小夥伴們細心觀察的話,Java 就有不少 final 類,比如說最常見的 String 類。 public   final   class   String      implements   java . io . Serializable ,  Comparable < String >,  CharSequence ,            ...

從10萬到30萬,2016年的合資SUV教授最期待這幾款的表現!

或許除此之外,你還關注其他SUV車型。但就今天所介紹的這幾款SUV,從小型SUV到中大型SUV都有,它們的價格也覆蓋10-30萬區間,是目前消費者購置SUV時大多數考量的價格。綜合分析下來,今天所介紹的這幾款車型,它們都有着各自的特點。 想想時間,又是到了年終總結的時候了。2016年是汽車市場發生激烈變化的一年,這一年裡合資品牌與自主品牌再一次短兵相接。至於最終的勝負,目前還很難說。但就這幾年而言,特別是自主SUV車型進步非常大,外觀設計與做工用料都有很大的提升。但相比自主SUV不推出產品而言,合資品牌每一次推出產品都是醞釀已久。不過這樣的等待是值得期待的,畢竟它們都是實力出眾的車型。今天就來介紹一下,今年最期待的幾款合資SUV車型。 本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理 【其他文章推薦】 ※自行創業缺乏曝光? 網頁設計 幫您第一時間規劃公司的形象門面 ※ 網頁設計 一頭霧水該從何著手呢? 台北網頁設計 公司幫您輕鬆架站! ※想知道最厲害的 網頁設計公司 "嚨底家"! ※別再煩惱 如何寫文案 ,掌握八大原則! ※產品缺大量曝光嗎?你需要的是一流 包裝設計 ! Orignal From: 從10萬到30萬,2016年的合資SUV教授最期待這幾款的表現!