Python面向对象基础一
公司可能過一兩個月就要從深圳搬到東莞松山湖,項目組的現在有的在轉Java或其他語言的,問我們要不要轉java+hoodap+spark方向,我還是先不轉,畢竟之前是從ios轉回C#,這現在在轉其他的那樣每一種都是學個皮毛,都學的不精通。我還是先把C#學好再說,在學C#的基礎上可以了解下其他語言,這周看老板朋友圈發招聘要找python,之前只是聽說有這個語言,用處還挺廣,可一直沒去了解過,昨天晚上算是百度了下,看了下具體介紹,用處也挺廣的,機器學習都可以用它,今天上午一早起床安裝了開發工具Pycharm來玩一下Python。
一、和C#語言的比較
Python也是面向對象的語言,大家也都知道面向對象有3特征,繼承、封裝和抽象。Python也不例外,由于自己也算接觸過C C++(兩個都是大學學的,已經還給老師),工作又接觸過OC C#,語言只是工具,他們肯定也是有共性和差異。
二、已面向對象3特征為基礎
既然Python是面向對象,也是3大特征,所以可以將3大特征涉及的知識列出來,然后對照著學習,比如繼承,C#中單繼承,多繼承采用接口,Python中多繼承可以用,逗號隔開。已C#為參照,學習Python更快。
三、實踐檢驗真理
早上一早起來安裝開發工具,倒騰了好久,原本想著先跑步呢,安裝完開發環境,寫了一個helloworld之后又想著試試面向對象的功能,所以寫了下面的一個demo。注釋也都在代碼中。也比較基礎只是大概的粗礦的了解,熟悉其他編程語言一眼就能看出,這里只是做個熱身,以后會慢慢熟悉Python的細節。
class Person:__count=0 #私有屬性 在變量、方法前增加兩個下劃線既聲明的是私有變量方法def __init__(self,name,age): #構造函數self.name=nameself.age=ageself.__count+=1print("count is %d" %self.__count)def __del__(self): #類似C#中析構函數class_name = self.__class__.__name__print("%s銷毀" % class_name)def showSelf(self):#實例方法print("hello,I am a person,my name is %s and my age is %d" % (self.name,self.age))def __getCount(self): # 私有方法 無法繼承不能在外部訪問return self.__countdef get_count(self):print("count is %d" % self.__getCount()) # 內部訪問私有方法 @staticmethod #聲明靜態方法關鍵字def staticTest():print("staticTest")@classmethod #聲明類方法關鍵字def classTest(self):print("classTest")class Student(Person):#繼承Person父類,如果多個用,隔開def __init__(self,name,age,school):super().__init__(name,age) #父類初始化 C#只學base(參數) python 有些不同self.school=schooldef __del__(self):class_name = self.__class__.__name__print ("%s銷毀"%class_name)def showSelf(self): #函數重寫,覆蓋父類方法print("hello,I am a student,my name is %s,my age is %d and my school is %s" % (self.name, self.age,self.school))per=Person("cuiyanwei",20) per.showSelf() per.staticTest() per.classTest() per.get_count() del perstu=Student("cuiyanwei",20,"周口師范") stu.showSelf() stu.staticTest() stu.classTest() stu.get_count() del stu轉載于:https://www.cnblogs.com/5ishare/p/6500694.html
總結
以上是生活随笔為你收集整理的Python面向对象基础一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux同步目录 保留文件修改时间和权
- 下一篇: 期末总结