欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 類(lèi)相關(guān)概念理解

 更新時(shí)間:2021年09月13日 16:19:13   作者:lucky-xxyyxx  
這篇文章主要介紹了簡(jiǎn)單了解python類(lèi)概念,具有一定借鑒價(jià)值,需要的朋友可以參考下,希望能夠給你帶來(lái)幫助

什么是類(lèi),對(duì)象,實(shí)例,類(lèi)## 標(biāo)題變量(類(lèi)屬性),實(shí)例變量(實(shí)例屬性)

面向?qū)ο缶幊?/strong>(Object-oriented Programming,簡(jiǎn)稱(chēng) OOP),是一種封裝代碼的方法。比如說(shuō),將亂七八糟的數(shù)據(jù)扔進(jìn)列表中,這就是一種簡(jiǎn)單的封裝,是數(shù)據(jù)層面的封裝;把常用的代碼塊打包成一個(gè)函數(shù),這也是一種封裝,是語(yǔ)句層面的封裝。面向?qū)ο缶幊?,也是一種封裝的思想,把描述特征的數(shù)據(jù)和代碼塊(函數(shù))封裝到一起。

面向?qū)ο笾校S眯g(shù)語(yǔ)包括類(lèi),對(duì)象,屬性,方法:

類(lèi):可以理解是一個(gè)模板,通過(guò)它可以創(chuàng)建出無(wú)數(shù)個(gè)具體實(shí)例(又稱(chēng)對(duì)象)。
對(duì)象(實(shí)例):類(lèi)并不能直接使用,通過(guò)類(lèi)創(chuàng)建出的實(shí)例才能使用。
屬性:類(lèi)中的所有變量稱(chēng)為屬性。
方法:類(lèi)中的所有函數(shù)通常稱(chēng)為方法。不過(guò),和函數(shù)所有不同的是,類(lèi)方法至少要包含一個(gè) self 參數(shù)。類(lèi)方法無(wú)法單獨(dú)使用,只能和類(lèi)的對(duì)象一起使用。

類(lèi)變量和類(lèi)屬性的分類(lèi)

無(wú)論是類(lèi)屬性還是類(lèi)方法,都無(wú)法像普通變量或者函數(shù)那樣,在類(lèi)的外部直接使用它們。我們可以將類(lèi)看做一個(gè)獨(dú)立的空間,則類(lèi)屬性其實(shí)就是在類(lèi)體中定義的變量,類(lèi)方法是在類(lèi)體中定義的函數(shù)。

在類(lèi)體中,根據(jù)變量定義的位置不同,以及定義的方式不同,類(lèi)屬性又可細(xì)分為以下 3 種類(lèi)型:

類(lèi)體中、所有函數(shù)之外:此范圍定義的變量,稱(chēng)為類(lèi)屬性或類(lèi)變量;
類(lèi)體中,所有函數(shù)內(nèi)部:以“self.變量名”的方式定義的變量,稱(chēng)為實(shí)例屬性或?qū)嵗兞浚?br /> 類(lèi)體中,所有函數(shù)內(nèi)部:以“變量名=變量值”的方式定義的變量,稱(chēng)為局部變量。

和類(lèi)屬性一樣,類(lèi)方法也可以進(jìn)行更細(xì)致的劃分,具體可分為類(lèi)方法、實(shí)例方法和靜態(tài)方法。在實(shí)際編程中,幾乎不會(huì)用到類(lèi)方法和靜態(tài)方法,因?yàn)槲覀兺耆梢允褂煤瘮?shù)代替它們實(shí)現(xiàn)想要的功能,但在一些特殊的場(chǎng)景中(例如工廠模式中),使用類(lèi)方法和靜態(tài)方法也是很不錯(cuò)的選擇。

和類(lèi)屬性的分類(lèi)不同:
類(lèi)方法:采用 @classmethod 修飾的方法
靜態(tài)方法:采用 @staticmethod> 修飾的方法
實(shí)例方法:不用任何修改的方法

構(gòu)造方法:在創(chuàng)建類(lèi)時(shí),我們可以手動(dòng)添加一個(gè) init() 方法,該方法是一個(gè)特殊的類(lèi)實(shí)例方法,稱(chēng)為構(gòu)造方法(或構(gòu)造函數(shù))。構(gòu)造方法用于創(chuàng)建對(duì)象時(shí)使用,每當(dāng)創(chuàng)建一個(gè)類(lèi)的實(shí)例對(duì)象時(shí),Python 解釋器都會(huì)自動(dòng)調(diào)用它。

類(lèi)調(diào)用實(shí)例方法

實(shí)例方法的調(diào)用方式其實(shí)有 2 種,既可以采用類(lèi)對(duì)象調(diào)用,也可以直接通過(guò)類(lèi)名調(diào)用。

class CLanguage :
    # 下面定義了2個(gè)類(lèi)變量
    name = "python語(yǔ)言"
    add = "http://c.biancheng.net.python"
    # __init__是構(gòu)造方法,也屬于實(shí)例方法  
    def __init__(self,name,add):
        #下面定義 2 個(gè)實(shí)例變量
        self.name = name
        self.add = add
        print(name,"網(wǎng)址為:",add)
    # 下面定義了一個(gè)say實(shí)例方法
    def say(self, content):
        print(content)
    #下面定義了一個(gè)count實(shí)例方法   
    def count(self,money):
    #下面定義了一個(gè)局部變量sale
        sale = 0.8*money
        print("優(yōu)惠后的價(jià)格為:",sale)
    #下面定義了一個(gè)類(lèi)方法
    @classmethod
    def info(cls):
        print("正在調(diào)用類(lèi)方法",cls)
    #下面定義了一個(gè)靜態(tài)方法
    @staticmethod
    def info(name,add):
        print(name,add)
# 將該CLanguage對(duì)象賦給clanguage變量
# 通過(guò)類(lèi)名直接調(diào)用實(shí)例方法
# CLanguage.say("通過(guò)類(lèi)名直接調(diào)用實(shí)例方法")會(huì)報(bào)錯(cuò),必須手動(dòng)將 clang 這個(gè)類(lèi)對(duì)象傳給self 參數(shù)
clang = CLanguage("C語(yǔ)言中文網(wǎng)1","http://c.biancheng.net")#傳入的參數(shù)要和init的一樣
CLanguage.say(clang, "通過(guò)類(lèi)名直接調(diào)用實(shí)例方法")
# 通過(guò)類(lèi)對(duì)象直接調(diào)用實(shí)例方法
clang2 = CLanguage("C語(yǔ)言中文網(wǎng)2","http://c.biancheng.net")
clang2.say("通過(guò)類(lèi)對(duì)象直接調(diào)用實(shí)例方法")
#輸出
C語(yǔ)言中文網(wǎng)1 網(wǎng)址為: http://c.biancheng.net
通過(guò)類(lèi)名直接調(diào)用實(shí)例方法
C語(yǔ)言中文網(wǎng)2 網(wǎng)址為: http://c.biancheng.net
通過(guò)類(lèi)對(duì)象直接調(diào)用實(shí)例方法

類(lèi)的封裝(enclosure),繼承和多態(tài)

1.封裝

簡(jiǎn)單的理解封裝(Encapsulation),即在設(shè)計(jì)類(lèi)時(shí),刻意地將一些屬性和方法隱藏在類(lèi)的內(nèi)部,這樣在使用此類(lèi)時(shí),將無(wú)法直接以“類(lèi)對(duì)象.屬性名”(或者“類(lèi)對(duì)象.方法名(參數(shù))”)的形式調(diào)用這些屬性(或方法),而只能用未隱藏的類(lèi)方法間接操作這些隱藏的屬性和方法。

Python 類(lèi)如何進(jìn)行封裝?

和其它面向?qū)ο蟮木幊陶Z(yǔ)言(如 C++、Java)不同,Python 類(lèi)中的變量和函數(shù),不是公有的(類(lèi)似 public 屬性),就是私有的(類(lèi)似 private),這 2 種屬性的區(qū)別如下:

public:公有屬性的類(lèi)變量和類(lèi)函數(shù),在類(lèi)的外部、類(lèi)內(nèi)部以及子類(lèi)(后續(xù)講繼承特性時(shí)會(huì)做詳細(xì)介紹)中,都可以正常訪(fǎng)問(wèn);

private:私有屬性的類(lèi)變量和類(lèi)函數(shù),只能在本類(lèi)內(nèi)部使用,類(lèi)的外部以及子類(lèi)都無(wú)法使用。

Python 并沒(méi)有提供 public、private 這些修飾符。為了實(shí)現(xiàn)類(lèi)的封裝,Python 采取了下面的方法:
默認(rèn)情況下,Python 類(lèi)中的變量和方法都是公有(public)的,它們的名稱(chēng)前都沒(méi)有下劃線(xiàn)(_);
如果類(lèi)中的變量和函數(shù),其名稱(chēng)以雙下劃線(xiàn)“”開(kāi)頭,但是沒(méi)有以雙下劃線(xiàn)“”結(jié)尾,則該變量(函數(shù))為私有變量(私有函數(shù)),其屬性等同于
private。

封裝的具體細(xì)節(jié)參考

2.繼承和多態(tài)

在OOP(Object Oriented Programming)程序設(shè)計(jì)中,當(dāng)我們定義一個(gè)class的時(shí)候,可以從某個(gè)現(xiàn)有的class 繼承,新的class稱(chēng)為子類(lèi)(Subclass),而被繼承的class稱(chēng)為基類(lèi)、父類(lèi)或超類(lèi)(Base class、Super class)。

繼承有什么好處?最大的好處是子類(lèi)獲得了父類(lèi)的全部屬性及功能。

使用 class subclass_name(baseclass_name) 來(lái)表示繼承

class Person(object):
    def __init__(self,name,sex):
        self.name = name
        self.sex = sex
    def print_title(self):
        if self.sex == "male":
            print("man")
        elif self.sex == "female":
            print("woman")
class Child(Person):                            # Child 繼承 Person
    pass
May = Child("May","female")
Peter = Person("Peter","male")
print(May.name,May.sex,Peter.name,Peter.sex)    # 子類(lèi)繼承父類(lèi)方法及屬性
May.print_title()
Peter.print_title()
#輸出
May female Peter male
woman
man

isinstance() 及 issubclass()

Python 與其他語(yǔ)言不同點(diǎn)在于,當(dāng)我們定義一個(gè) class 的時(shí)候,我們實(shí)際上就定義了一種數(shù)據(jù)類(lèi)型。我們定義的數(shù)據(jù)類(lèi)型和Python自帶的數(shù)據(jù)類(lèi)型,比如str、list、dict沒(méi)什么兩樣。

Python 有兩個(gè)判斷繼承的函數(shù):isinstance() 用于檢查實(shí)例類(lèi)型;issubclass() 用于檢查類(lèi)繼承。參見(jiàn)下方示例:

class Person(object):
    pass
class Child(Person):                 # Child 繼承 Person
    pass
May = Child()
Peter = Person()    
print(isinstance(May,Child))         # True
print(isinstance(May,Person))        # True
print(isinstance(Peter,Child))       # False
print(isinstance(Peter,Person))      # True
print(issubclass(Child,Person))      # True

在說(shuō)明多態(tài)是什么之前,我們?cè)?Child 類(lèi)中重寫(xiě) print_title() 方法:若為male,print boy;若為female,print girl

class Person(object):
    def __init__(self,name,sex):
        self.name = name
        self.sex = sex
    def print_title(self):
        if self.sex == "male":
            print("man")
        elif self.sex == "female":
            print("woman")
class Child(Person):                # Child 繼承 Person
    def print_title(self):
        if self.sex == "male":
            print("boy")
        elif self.sex == "female":
            print("girl")
May = Child("May","female")
Peter = Person("Peter","male")
print(May.name,May.sex,Peter.name,Peter.sex)
May.print_title()
Peter.print_title()

當(dāng)子類(lèi)和父類(lèi)都存在相同的 print_title()方法時(shí),子類(lèi)的 print_title() 覆蓋了父類(lèi)的 print_title(),在代碼運(yùn)行時(shí),會(huì)調(diào)用子類(lèi)的 print_title()

這樣,我們就獲得了繼承的另一個(gè)好處:多態(tài)。

多態(tài)的好處就是,當(dāng)我們需要傳入更多的子類(lèi),例如新增 Teenagers、Grownups 等時(shí),我們只需要繼承 Person 類(lèi)型就可以了,而print_title()方法既可以直不重寫(xiě)(即使用Person的),也可以重寫(xiě)一個(gè)特有的。這就是多態(tài)的意思。調(diào)用方只管調(diào)用,不管細(xì)節(jié),而當(dāng)我們新增一種Person的子類(lèi)時(shí),只要確保新方法編寫(xiě)正確,而不用管原來(lái)的代碼。這就是著名的**“開(kāi)閉”原則**:

對(duì)擴(kuò)展開(kāi)放(Open for extension):允許子類(lèi)重寫(xiě)方法函數(shù)
對(duì)修改封閉(Closed for modification):不重寫(xiě),直接繼承父類(lèi)方法函數(shù)

子類(lèi)重寫(xiě)構(gòu)造函數(shù)

子類(lèi)可以沒(méi)有構(gòu)造函數(shù),表示同父類(lèi)構(gòu)造一致;子類(lèi)也可重寫(xiě)構(gòu)造函數(shù);現(xiàn)在,我們需要在子類(lèi) Child 中新增兩個(gè)屬性變量:mother 和 father,我們可以構(gòu)造如下(建議子類(lèi)調(diào)用父類(lèi)的構(gòu)造方法,參見(jiàn)后續(xù)代碼):

class Person(object):
    def __init__(self,name,sex):
        self.name = name
        self.sex = sex
class Child(Person):                          # Child 繼承 Person
    def __init__(self,name,sex,mother,father):
        Person.__init__(self,name,sex)        # 子類(lèi)對(duì)父類(lèi)的構(gòu)造方法的調(diào)用
        self.mother = mother
        self.father = father
May = Child("May","female","April","June")
print(May.name,May.sex,May.mother,May.father)   

多重繼承

多重繼承的概念應(yīng)該比較好理解,比如現(xiàn)在需要新建一個(gè)類(lèi) baby 繼承 Child , 可繼承父類(lèi)及父類(lèi)上層類(lèi)的屬性及方法,優(yōu)先使用層類(lèi)近的方法,代碼參考如下:

class Person(object):
    def __init__(self,name,sex):
        self.name = name
        self.sex = sex
    def print_title(self):
        if self.sex == "male":
            print("man")
        elif self.sex == "female":
            print("woman")
class Child(Person):
    pass
class Baby(Child):
    pass
May = Baby("May","female")        # 繼承上上層父類(lèi)的屬性
print(May.name,May.sex)         # May female
May.print_title()                 #woman 可使用上上層父類(lèi)的方法

class Child(Person):
    def print_title(self):
        if self.sex == "male":
            print("boy")
        elif self.sex == "female":
            print("girl")
class Baby(Child):
    pass
May = Baby("May","female")
May.print_title()                # girl 優(yōu)先使用上層類(lèi)的方法

迭代,迭代器(iterator),可迭代對(duì)象(iterable object),生成器(generator)

迭代:是訪(fǎng)問(wèn)集合元素的一種方式。如果給定一個(gè)list或tuple,我們可以通過(guò)for循環(huán)來(lái)遍歷這個(gè)list或tuple,這種遍歷我們稱(chēng)為迭代(Iteration)。

迭代對(duì)象: 如果類(lèi)中定義了__iter__方法,且返回了一個(gè)迭代器對(duì)象, 那么稱(chēng)這個(gè)創(chuàng)建的對(duì)象為可迭代對(duì)象

字符串,列表,元祖,字典,集合等等,都是可迭代對(duì)象。
(沒(méi)有__next__)
可迭代對(duì)象,則可用for循環(huán)

# 字符串,列表,元祖,字典,集合等等,都是可迭代對(duì)象
for i in [1, 2, 3]:
    print(i)
obj = {"a": 123, "b": 456}
for k in obj:
    print(k)

創(chuàng)建可迭代對(duì)象

class foo(object):
	def __iter__(self):
		return 迭代器對(duì)象(生成器對(duì)象)
obj = foo() #obj是可迭代對(duì)象
#創(chuàng)建迭代器
class IT(object):
	def __init__(self):
		self.counter = 0
	def __iter__(self):
		return self
	def __next__(self):
		self.counter += 1
		if self.counter == 3:
			raise StopIteration()
#創(chuàng)建可迭代器對(duì)象
class foo(object):
	def __iter__(self):
		return IT()
obj = foo() #obj是可迭代對(duì)象
for item in obj:   #循環(huán)可迭代對(duì)象時(shí),內(nèi)部先執(zhí)行obj.__iter__()并獲取迭代器對(duì)象,然后再不斷的執(zhí)行迭代器對(duì)象的__next__方法
	print(item)

迭代器:迭代器是一個(gè)可以記住遍歷的位置的對(duì)象

類(lèi)中定義了__iter__和__next__兩個(gè)方法
__iter__返回對(duì)象本身,即self
__next__返回下一個(gè)數(shù)據(jù),如果沒(méi)有,就返回一個(gè)stopiteration 的異常。
迭代器對(duì)象從集合的第一個(gè)元素開(kāi)始訪(fǎng)問(wèn),直到所有的元素被訪(fǎng)問(wèn)完結(jié)束。迭代器只能往前不會(huì)后退。
迭代器有兩個(gè)基本的方法(內(nèi)置函數(shù)):iter() 和 next() ;內(nèi)置函數(shù) iter() 將可迭代對(duì)象轉(zhuǎn)化為迭代器. 通過(guò) next() 方法逐一讀取下一個(gè)元素

創(chuàng)建一個(gè)迭代器

創(chuàng)建迭代器共有3種方法如下:

通過(guò)python內(nèi)置函數(shù)iter()將可迭代對(duì)象轉(zhuǎn)換為迭代器
自己創(chuàng)建一個(gè)迭代器, 滿(mǎn)足(1)類(lèi)中定義了__iter__和__next__兩個(gè)方法(2)__next__返回下一個(gè)數(shù)據(jù),如果沒(méi)有,就返回一個(gè)stopiteration> 的異常 2個(gè)條件
通過(guò)生成器(generator)創(chuàng)建

# 方法1: iter()將可迭代對(duì)象轉(zhuǎn)換為迭代器
list=[1, 2, 3, 4]
it = iter(list)    # 創(chuàng)建迭代器對(duì)象
#使用next()遍歷數(shù)據(jù)
print (next(it))  #1
print (next(it))  #2
#使用for循環(huán)遍歷數(shù)據(jù),for循環(huán)由于簡(jiǎn)潔,更常用
#for循環(huán)會(huì)執(zhí)行迭代器的iter并獲得返回的對(duì)象,一直反復(fù)的去執(zhí)行next(對(duì)象)
for x in it:
    print (x, end=" ")   # 3 4
print (next(it))   #StopIteration
# 方法2: 創(chuàng)建一個(gè)迭代器
class MyNumbers:
  def __iter__(self):
    self.a = 1
    return self
  def __next__(self):
    if self.a <= 20:
      x = self.a
      self.a += 1
      return x
    else:
      raise StopIteration
#通過(guò)iter()和next()訪(fǎng)問(wèn) 
myclass = MyNumbers()
myiter = iter(myclass)
print(next(myiter))
print(next(myiter))
print(next(myiter))
for x in myiter:
  print(x)
print(next(myiter))

#輸出
StopIteration
1
2
3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Process finished with exit code 1

生成器:使用了 yield 的 函數(shù) 被稱(chēng)為生成器(generator)

具體細(xì)節(jié)參考http://www.dbjr.com.cn/article/63929.htm

相比迭代器,生成器最明顯的優(yōu)勢(shì)就是節(jié)省內(nèi)存空間,即它不會(huì)一次性生成所有的數(shù)據(jù),而是什么時(shí)候需要,什么時(shí)候生成。

創(chuàng)建一個(gè)生成器

定義一個(gè)以 yield 關(guān)鍵字標(biāo)識(shí)返回值的函數(shù);

調(diào)用剛剛創(chuàng)建的函數(shù),即可創(chuàng)建一個(gè)生成器

要想使生成器函數(shù)得以執(zhí)行,或者想使執(zhí)行完 yield 語(yǔ)句立即暫停的程序得以繼續(xù)執(zhí)行,有以下 2 種方式:

通過(guò)生成器(上面程序中的 num)調(diào)用 next() 內(nèi)置函數(shù)或者 next() 方法;

通過(guò) for 循環(huán)遍歷生成器。

#創(chuàng)建了一個(gè) num 生成器對(duì)象。顯然,和普通函數(shù)不同,intNum() 函數(shù)的返回值用的是 yield 關(guān)鍵字,而不是 return 關(guān)鍵字,此類(lèi)函數(shù)又成為生成器函數(shù)。
#創(chuàng)建生成器函數(shù)
def intNum():
    print("開(kāi)始執(zhí)行")
    for i in range(5):
        yield i
        print("繼續(xù)執(zhí)行")
#創(chuàng)建生成器對(duì)象num
num = intNum()
#調(diào)用 next() 內(nèi)置函數(shù)
print(next(num))  #0
#調(diào)用 __next__() 方法
print(num.__next__())  #1
#通過(guò)for循環(huán)遍歷生成器
for i in num:  #2 , 3, 4
    print(i)

#輸出
開(kāi)始執(zhí)行
0
繼續(xù)執(zhí)行
1
繼續(xù)執(zhí)行
2
繼續(xù)執(zhí)行
3
繼續(xù)執(zhí)行
4
繼續(xù)執(zhí)行

Process finished with exit code 0

除此之外,還可以使用 list() 函數(shù)和 tuple() 函數(shù),直接將生成器能生成的所有值存儲(chǔ)成列表或者元組的形式

num = intNum()
print(list(num))
num = intNum()
print(tuple(num)

#輸出
開(kāi)始執(zhí)行
繼續(xù)執(zhí)行
繼續(xù)執(zhí)行
繼續(xù)執(zhí)行
繼續(xù)執(zhí)行
繼續(xù)執(zhí)行
[0, 1, 2, 3, 4]
開(kāi)始執(zhí)行
繼續(xù)執(zhí)行
繼續(xù)執(zhí)行
繼續(xù)執(zhí)行
繼續(xù)執(zhí)行
繼續(xù)執(zhí)行
(0, 1, 2, 3, 4)

Process finished with exit code 0

參考:

1. C語(yǔ)言中文網(wǎng)

2.Python生成器(Generator)詳解

3.Python迭代用法實(shí)例教程

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • 利用python將圖片版PDF轉(zhuǎn)文字版PDF

    利用python將圖片版PDF轉(zhuǎn)文字版PDF

    今天為大家介紹一下如何使用利用python將圖片版PDF轉(zhuǎn)文字版PDF,這里我們需要用到python3.6,pypdf2,ghostscript,PythonMagick,百度文字識(shí)別服務(wù)和pdfkit
    2019-05-05
  • Python中串口通信庫(kù)pyserial基礎(chǔ)知識(shí)

    Python中串口通信庫(kù)pyserial基礎(chǔ)知識(shí)

    Python的pyserial庫(kù)是一個(gè)用于通過(guò)串口進(jìn)行通信的庫(kù),下面這篇文章主要給大家介紹了關(guān)于Python中串口通信庫(kù)pyserial基礎(chǔ)知識(shí)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • Python3并發(fā)寫(xiě)文件與Python對(duì)比

    Python3并發(fā)寫(xiě)文件與Python對(duì)比

    這篇文章主要介紹了Python3并發(fā)寫(xiě)文件原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 詳解Python如何實(shí)現(xiàn)對(duì)比兩個(gè)Excel數(shù)據(jù)差異

    詳解Python如何實(shí)現(xiàn)對(duì)比兩個(gè)Excel數(shù)據(jù)差異

    這篇文章主要為大家詳細(xì)介紹了Python是如何實(shí)現(xiàn)對(duì)比兩個(gè)Excel數(shù)據(jù)差異的,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下
    2022-12-12
  • Python機(jī)器學(xué)習(xí)應(yīng)用之基于決策樹(shù)算法的分類(lèi)預(yù)測(cè)篇

    Python機(jī)器學(xué)習(xí)應(yīng)用之基于決策樹(shù)算法的分類(lèi)預(yù)測(cè)篇

    所謂決策樹(shù),就是一個(gè)類(lèi)似于流程圖的樹(shù)形結(jié)構(gòu),樹(shù)內(nèi)部的每一個(gè)節(jié)點(diǎn)代表的是對(duì)一個(gè)特征的測(cè)試,樹(shù)的分支代表該特征的每一個(gè)測(cè)試結(jié)果,而樹(shù)的每一個(gè)葉子節(jié)點(diǎn)代表一個(gè)類(lèi)別。樹(shù)的最高層是就是根節(jié)點(diǎn)
    2022-01-01
  • python根據(jù)unicode判斷語(yǔ)言類(lèi)型實(shí)例代碼

    python根據(jù)unicode判斷語(yǔ)言類(lèi)型實(shí)例代碼

    這篇文章主要介紹了python根據(jù)unicode判斷語(yǔ)言類(lèi)型實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • 教你如何用Python實(shí)現(xiàn)人臉識(shí)別(含源代碼)

    教你如何用Python實(shí)現(xiàn)人臉識(shí)別(含源代碼)

    Python可以從圖像或視頻中檢測(cè)和識(shí)別你的臉.人臉檢測(cè)與識(shí)別是計(jì)算機(jī)視覺(jué)領(lǐng)域的研究熱點(diǎn)之一.人臉識(shí)別的應(yīng)用包括人臉解鎖、安全防護(hù)等,醫(yī)生和醫(yī)務(wù)人員利用人臉識(shí)別來(lái)獲取病歷和病史,更好地診斷疾病,需要的朋友可以參考下
    2021-06-06
  • 趣味Python實(shí)戰(zhàn)練習(xí)之自動(dòng)更換桌面壁紙腳本附源碼

    趣味Python實(shí)戰(zhàn)練習(xí)之自動(dòng)更換桌面壁紙腳本附源碼

    讀萬(wàn)卷書(shū)不如行萬(wàn)里路,學(xué)的扎不扎實(shí)要通過(guò)實(shí)戰(zhàn)才能看出來(lái),本篇文章手把手帶你編寫(xiě)一個(gè)自動(dòng)更換桌面壁紙的腳本,代碼簡(jiǎn)潔而且短,相信你一定看得懂,大家可以在過(guò)程中查缺補(bǔ)漏,看看自己掌握程度怎么樣
    2021-10-10
  • Python線(xiàn)性回歸實(shí)戰(zhàn)分析

    Python線(xiàn)性回歸實(shí)戰(zhàn)分析

    這篇文章主要介紹了Python線(xiàn)性回歸實(shí)戰(zhàn)分析以及代碼講解,對(duì)此有興趣的朋友學(xué)習(xí)下吧。
    2018-02-02
  • 用pip給python安裝matplotlib庫(kù)的詳細(xì)教程

    用pip給python安裝matplotlib庫(kù)的詳細(xì)教程

    這篇文章主要介紹了用pip給python安裝matplotlib庫(kù)的詳細(xì)教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02

最新評(píng)論