真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python知識點(diǎn)案例-創(chuàng)新互聯(lián)

小編給大家分享一下Python知識點(diǎn)案例,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

目前創(chuàng)新互聯(lián)建站已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、長洲網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

面向?qū)ο缶幊?/p>

萬物皆是對象,Python當(dāng)然支持面向?qū)ο缶幊?。類和對象是面向?qū)ο缶幊痰膬蓚€主要方面,類創(chuàng)建一個新的對象,對象是這個類的實(shí)例。

對象可以使用類的變量,屬于對象或類的變量被稱為域;對象也可以使用屬于類的函數(shù),這樣的函數(shù)稱為類的方法;域和方法可以合稱為類的屬性。

域有兩種類型

  • 屬于實(shí)例的
  • 屬于類本身

它們分別被稱為實(shí)例變量和類變量。

類使用關(guān)鍵字class創(chuàng)建,類的域和方法被列在一個縮進(jìn)塊中。

類的方法必須有一個額外的第一個參數(shù),但是在調(diào)用時不為這個參數(shù)賦值,這個特殊變量指對象本身,按照慣例它的名稱是self,類似Java中的this。

在類中下面兩個特都方法需要注意:

  • __init__方法:在類的一個對象被創(chuàng)建時調(diào)用該方法;相當(dāng)于c++中的構(gòu)造函數(shù),就是當(dāng)這個類調(diào)用了,那么這個__init__ 方法就要執(zhí)行。

  • __del__方法:在類的對象被銷毀時調(diào)用該方法;相當(dāng)于c++中的析構(gòu)函數(shù)。在使用del刪除一個對象時也就調(diào)用__del__方法,__del__是最后調(diào)用的。

Python中所有的類成員(包括數(shù)據(jù)成員)都是public的,沒有Java的私有類,也就是人人都有調(diào)用類,雖然編寫變成很簡單, 但是資源人人都可以隨意分配訪問,在項(xiàng)目中確實(shí)一個不好的東西。

但是Python 類的卻有私有變量和私有方法之說,這個是一個例外,如果使用的數(shù)據(jù)成員以雙下劃線為前綴,則為私有變量。

你實(shí)例化這個類,訪問不了。這是很多人忽略 的

比如:

class public():
    _name = 'protected類型的變量'
    __info = '私有類型的變量'
    def _f(self):
        print("這是一個protected類型的方法")    def __f2(self):
        print('這是一個私有類型的方法')    def get(self):
        return(self.__info)
pub = public()# 先打印可以訪問的print(pub._name)
pub._f()####結(jié)果如下####protected類型的變量
這是一個protected類型的方法# 打印下類 私有變量和私有方法print(pub.__info)
報(bào)錯:'public' object has no attribute '__info'pub._f2()
報(bào)錯:pub._f2()復(fù)制代碼

但是私有屬性和方法可以在同一個類中被調(diào)用

pub.get()#######'私有類型的變量'復(fù)制代碼

上面是很多人不知道的,下面,我來聲明一個Person類

   class Person():
    Count = 0
    def __init__(self, name, age):
        Person.Count += 1
        self.name = name
        self.__age = age
    
p = Person("Runsen", 20)

print(p.Count)# 1 說明我實(shí)例化,這個__init__方法就要執(zhí)行print(p.name) #Runsenprint (p.__age) 
#AttributeError: Person instance has no attribute '__age'#私有變量訪問不了,報(bào)錯復(fù)制代碼

繼承

面向?qū)ο缶幊?(OOP),英語全稱:Object Oriented Programming,面向?qū)ο缶幊痰囊粋€主要功能就是“繼承”。繼承是指這樣一種能力:它可以使用現(xiàn)有類的所有功能,并在無需重新編寫原來的類的情況下對這些功能進(jìn)行擴(kuò)展。

繼承,其實(shí)這樣理解,就是我寫了一個爸爸類和兒子類,爸爸有錢,兒子卻沒錢,于是兒子決定繼承爸爸,調(diào)用爸爸的錢(爸爸類的變量和方法)。

繼承一個類,基本使用下面的五個方法。

直接調(diào)用父類屬性方法;

爸爸有錢,兒子卻沒錢,于是兒子用爸爸的錢

class Father():
    def __init__(self):
        self.money= 1000 
    def action(self):
        print('調(diào)用父類的方法') 
class Son(Father):
    pass
 son=Son()     # 子類Son 繼承父類Father的所有屬性和方法son.action()  # 調(diào)用父類屬性輸出:調(diào)用父類的方法
son.money     # 調(diào)用父類屬性輸出:1000復(fù)制代碼

強(qiáng)制調(diào)用父類私有屬性方法;

爸爸說,你這個兒子,老是用我的錢,我決定藏私房錢。兒子試試super()拿你的私房錢,但是這里需要注意super()強(qiáng)制調(diào)用父類私有屬性方法,就是重寫方法,私有變量是不能用supper繼承不了,還不可以訪問父類中的私有屬性方法的變量,就是兒子是拿不了私房錢的。

class Father():
    __money  = 1000 #私有變量是繼承不了
    
    def __action(self):  # 父類的私有方法
        money = 1000
        print('調(diào)用父類的方法') 
class Son(Father):
        
    def action(self):
        super()._Father__action()
        print(money) 
        
son=Son()
son.action() 

調(diào)用父類的方法
name 'money' is not defined復(fù)制代碼

重寫父類屬性方法;

突然間兒子竟然有錢,決定不用爸爸的錢,用自己的錢,決定重寫父類屬性方法。

class Father():
    def __init__(self):
        self.money = 0
    
    def action(self):
        print('調(diào)用父類的方法') 
class Son(Father):
    def __init__(self):
        self.money = 1000
      
    def action(self):
        print('子類重寫父類的方法')
 
son=Son()     # 子類Son繼承父類Father的所有屬性和方法son.action()  # 子類Son調(diào)用自身的action方法而不是父類的action方法son.money     # 自己的1000復(fù)制代碼

調(diào)用父類的__init__方法

如果爸爸把錢放在__init__,兒子有沒有可能拿到爸爸的錢,都不是私有變量,就不是私房錢,當(dāng)然可以拿到

我們先看看如果不用super,能不能拿到。

class Father():
    def __init__(self):
        self.money = 1000
 class Son(Father):
    def __init__(self):
        pass
    son=Son()
print(son.money)# 報(bào)錯:'Son' object has no attribute 'money'復(fù)制代碼

連super不用就像拿錢,太小看你爸爸我了。

class Father():
    def __init__(self):
        self.money = 1000
 class Son(Father):
    def __init__(self):
        super().__init__()        #也可以用 Father.__init__(self)  這里面的self一定要加上(上面兩個相同)
        
        son=Son()
print(son.money) 

1000復(fù)制代碼

繼承父類初始化過程中的參數(shù)

有的時候,爸爸需要掙錢和花錢,就是我們初始化過程中的參數(shù),兒子很好奇,決定看看爸爸口袋還要多少錢。

我們這里先寫死了earn_money和spend_money

class Father():
    def __init__(self):
        self.earn_money=1000
        self.spend_money= -500
 class Son(Father):
    def __init__(self):
        super().__init__()        #也可以用 Father.__init__(self)  這里面的self一定要加上
        
    def add(self):
        return self.earn_money+self.spend_money
        
        
son=Son()
print(son.add())500復(fù)制代碼

兒子發(fā)現(xiàn)爸爸錢不夠,于是偷偷的拿了點(diǎn)錢過來。

class Father():
    def __init__(self,a,b):
        self.earn_money = a
        self.spend_money= b    def add(self):
        return self.a + self.b 
#調(diào)用父類初始化參數(shù)a,b并增加額外參數(shù)cclass Son(Father):
    def __init__(self,a,b,c=1000):  # c固定值
        Father.__init__(self,a,b)  
        self.son_money = c        
    def add(self):
        return self.earn_money+self.spend_money + self.son_money
        
   
        
son=Son(1000,-500)   # 所以c可以不用顯示表達(dá)出來print(son.add())     # 調(diào)用子類add函數(shù)1500復(fù)制代碼

以上基本涵蓋了Python類的繼承,調(diào)用父類的屬性和方法基礎(chǔ)內(nèi)容,可以自己動手寫些案例,加深理解。

輸入/輸出

程序與用戶的交互需要使用輸入/輸出,主要包括控制臺和文件;對于控制臺可以使用input和print。input(xxx)輸入xxx, 然后讀取用戶的輸入并返回。

In [1]: input()1Out[1]: '1'復(fù)制代碼

文件輸入/輸出

可以使用file類打開一個文件,使用file的read、readline和write來恰當(dāng)?shù)淖x寫文件。對文件讀寫能力取決于打開文件時使用的模式, 常用模式

  • 讀模式("r")
  • 寫模式("w")
  • 追加模式("a")

文件操作之后需要調(diào)用close方法來關(guān)閉文件。如果用with open就不用slose了。

還有r+,w+,a+

  • r:僅僅表示讀入
  • r+:既可以讀取還可以寫入
  • w: 僅僅表示寫入
  • w+:既可以讀取還可以寫入

但r+與w+不同的是,不會把原先存在txt中的東西清空,下面是他們的對比,反正盡量用a+,基本沒什么錯報(bào)出來。

描述r+w+a+
當(dāng)前文件不存在時文件拋出異常創(chuàng)建文件創(chuàng)建文件
打開后原文件內(nèi)容保留清空保留
初始位置00文件尾
寫入位置標(biāo)記位置標(biāo)記位置寫入時默認(rèn)跳至文件尾

補(bǔ)充個例子吧:

test = '''\
This is a program about file I/O.
Author: Runsen
Date: 2020/3/31
'''f = open("test.txt", "w") 
f.write(test) 
f.close() 

f = open("test.txt") #默認(rèn)rwhile True:
    line = f.readline()    if len(line) == 0:  
        break
    print(line)
f.close()######This is a program about file I/O.

Author: Runsen

Date: 2020/3/31復(fù)制代碼

存儲器

存儲器,大家應(yīng)該不知道。python提供一個標(biāo)準(zhǔn)的模塊,成為pickle,使用它可以在一個文件中存儲任何python對象,之后可以完整的取出來,這被稱為持久地存儲對象;還有另外一個模塊成為cPickle,它的功能和pickle完全一樣,只不過它是用c寫的,要比pickle速度快(大約快1000倍)。

import pickle

datafile = "data.data"mylist = ["Runsen", "is", "20"]

f = open("test.txt", "wb+")
pickle.dump(mylist, f)
f.close()del mylist

f = open(datafile,'rb+')
mylist = pickle.load(f)

print(mylist)#["Runsen", "is", "20"]復(fù)制代碼

異常

當(dāng)程序中出現(xiàn)某些異常的狀況時,異常就發(fā)生了。

python中可以使用try ... except處理。

try:    print (1/0)except ZeropisionError as e:
    print(e)except:
    print( "error or exception occurred.")#integer pision or modulo by zero復(fù)制代碼

以上是Python知識點(diǎn)案例的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


當(dāng)前題目:Python知識點(diǎn)案例-創(chuàng)新互聯(lián)
當(dāng)前地址:http://weahome.cn/article/csdsch.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部