日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python导入模块以及类_python—模块导入和类

發(fā)布時間:2024/7/5 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python导入模块以及类_python—模块导入和类 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.查詢模塊:按目錄依次查找需要導入的模塊,模塊目錄一般在:/usr/lib64/python2.7

In [2]: sys.path

Out[2]:

['',

'/usr/bin',

'/usr/lib64/python2.7/site-packages/MySQL_python-1.2.5-py2.7-linux-x86_64.egg',

'/usr/lib64/python27.zip',

'/usr/lib64/python2.7',

'/usr/lib64/python2.7/plat-linux2',

'/usr/lib64/python2.7/lib-tk',

'/usr/lib64/python2.7/lib-old',

'/usr/lib64/python2.7/lib-dynload',

'/usr/lib64/python2.7/site-packages',

'/usr/lib/python2.7/site-packages',

'/usr/lib/python2.7/site-packages/python_memcached-1.58-py2.7.egg',

'/usr/lib/python2.7/site-packages/IPython/extensions',

'/root/.ipython']

2.自定義模塊目錄

方法一:sys.path.append(),一般加在目錄列表最后

In [3]: sys.path.append("/root/python/")

In [4]: sys.path

Out[4]:

['',

'/usr/bin',

'/usr/lib64/python2.7/site-packages/MySQL_python-1.2.5-py2.7-linux-x86_64.egg',

'/usr/lib64/python27.zip',

'/usr/lib64/python2.7',

'/usr/lib64/python2.7/plat-linux2',

'/usr/lib64/python2.7/lib-tk',

'/usr/lib64/python2.7/lib-old',

'/usr/lib64/python2.7/lib-dynload',

'/usr/lib64/python2.7/site-packages',

'/usr/lib/python2.7/site-packages',

'/usr/lib/python2.7/site-packages/python_memcached-1.58-py2.7.egg',

'/usr/lib/python2.7/site-packages/IPython/extensions',

'/root/.ipython',

'/root/python/']

方法二:修改環(huán)境變量,一般加在目錄列表前面vim /root/.bashrc # 加入 export PYTHONPATH=/root/python

source /root/.bashrc # 刷新

例子:統(tǒng)計一個文件,行數(shù)、單詞數(shù)、字符數(shù)(和wc命令相同效果)

說明:為了避免使用split切割之后,最后多出一個空字符串,而使用count()#/usr/bin/env python

def count(s):

char = len(s)

words = len(s.split())

lines = s.count("\n")

print lines,words,char

file1 = open("/etc/passwd","r")

s = file1.read()

count(s)

3.腳本形式,導入模塊,腳本名字不能是數(shù)字,會產(chǎn)生一個編譯文件

例子:

#!/usr/bin/env python

import wc

說明:目錄下生產(chǎn)編譯文件:wc.pyc

4.py和wc.py的__name__內(nèi)置變量不一樣,前者是wc,或者是__main__,修改wc.py,執(zhí)行自己時,輸出自己的結(jié)果,被調(diào)用時,執(zhí)行不顯示源結(jié)果:

wc.py:

#/usr/bin/env python

def count(s):

char = len(s)

words = len(s.split())

lines = s.count("\n")

print lines,words,char

if __name__ == "__main__":

file1 = open("/etc/passwd","r")

s = file1.read()

count(s)

test.py:

#!/usr/bin/env python

import wc

s = open("/root/python/10.py","r").read()

wc.count(s)

5.包的形式,導入模塊

四種導入方法:在包目錄dir下創(chuàng)建一個__init__.py空文件

方法一:

from dir import wc

wc.count("abc")

方法二:

import dir.wc

dir.wc.count("abc")

方法三:

from dir.wc import count

count("abc")

方法四:別名from dir.wc import count as count

count("abc")

6.面向?qū)ο缶幊?#xff1a;python、java、C++;面向過程編程:C、函數(shù)式編程、shell

類的(靜態(tài))屬性:(人類的五官,理解為變量)

類的(動態(tài))方法:(人類吃穿住行,理解為一個函數(shù))

對象:類的實例化,之后才能有屬性和方法

7.類的創(chuàng)建

類的方法中,至少有一個參數(shù)self

調(diào)用屬性時,不帶括號

調(diào)用方法時,使用括號;方法調(diào)用屬性時,至少有一個self參數(shù)

屬性調(diào)用其他方法:類名.屬性名

例子:class People():

color = "yellow"

def think(self): # 加上self表示是類的方法,不加則表示函數(shù)

self.color = "black" # 加上self表示是類的屬性

print ("My color is %s "% (self.color))

ren = People() # 類的實例化

print ren.color # 類的屬性外部調(diào)用

ren.think() # 類的方法外部調(diào)用,如加上print,則多一個默認return值none

運行結(jié)果:

yellow

My color is black

8.私有屬性在定義的類中的內(nèi)部函數(shù)中被調(diào)用

例子:class People():

color = "yellow"

__age = 27

def think(self):

self.color = "black"

print self.__age # 內(nèi)部函數(shù)調(diào)用類的私有屬性,外部函數(shù)不能直接調(diào)用

print ("My color is %s "% (self.color))

ren = People()

print ren.color

ren.think()

9.外部調(diào)用私有屬性(格式:實例化名._類名屬性名),一般只是測試用

例子:class People():

color = "yellow"

__age = 27

def think(self):

self.color = "black"

print self.__age

print ("My color is %s "% (self.color))

ren = People()

print ren.color

ren.think()

print ren._People__age # 外部調(diào)用私有屬性

10.類的方法

公有方法:內(nèi)部和外部都可以調(diào)用

私有方法:內(nèi)部函數(shù)調(diào)用

動態(tài)方法:classmethod()函數(shù)處理,沒有被調(diào)用的類的其他參數(shù)不會加載進內(nèi)存中

靜態(tài)方法:

方法的定義和函數(shù)一樣,但是需要把self作為第一個參數(shù),如果還是有其他參數(shù),繼續(xù)加上;類實例化之后,采用“類名.方法名()”調(diào)用

例子1:私有方法調(diào)用class People():

color = "yellow"

__age = 27

def __think(self):

self.color = "black"

print self.__age

print ("My color is %s "% (self.color))

def test(self):

self.__think() # 類的私有方法調(diào)用

ren = People()

ren.test() # 類的私有方法調(diào)用

例子2:動態(tài)方法調(diào)用

class People():

color = "yellow"

__age = 27

def __think(self):

self.color = "black"

print self.__age

print ("My color is %s "% (self.color))

def test(self):

print ("Testing...")

cm = classmethod(test) # 動態(tài)方法定義

ren = People()

ren.cm() # 動態(tài)方法調(diào)用

例子3:靜態(tài)方法調(diào)用:

類函數(shù)不帶self參數(shù),該函數(shù)使用staticmethod()函數(shù)處理(如果不處理,缺少self,,調(diào)用時會報錯),加載關(guān)于這個類的所有東西

class People():

color = "yellow"

__age = 27

def __think(self):

self.color = "black"

print self.__age

print ("My color is %s "% (self.color))

def test(): # 內(nèi)部函數(shù),不帶self

print ("Testing...")

#print People.color # 因為沒有self,不能調(diào)用該類的屬性

cm = staticmethod(test) # 靜態(tài)方法定義

ren = People()

ren.cm() # 靜態(tài)方法調(diào)用

例子4:加裝飾器,只對下面的一個函數(shù)起作用,就可以使用類的方法調(diào)用了

class People():

color = "yellow"

__age = 27

def __think(self):

self.color = "black"

print self.__age

print ("My color is %s "% (self.color))

@classmethod # 加裝飾器,可以通過類來調(diào)用

def test(self): # 動態(tài)方法,帶self

print ("Testing...")

@staticmethod # 加裝飾器

def test1(): # 靜態(tài)方法,不帶self

print ("Testing1..")

ren = People()

People.test() # 類的方法調(diào)用

People.test1() # 類的方法調(diào)用

11.定義內(nèi)部類

方法一:

class People():

color = "yellow"

__age = 27

class Chinese(object): # 定義內(nèi)部類

country = "I am chinese"

hzp = People.Chinese() # 外部類.內(nèi)部類實例化

print hzp.country # 實例化后,調(diào)用內(nèi)部類的屬性

方法二:

class People():

color = "yellow"

__age = 27

class Chinese(object):

country = "I am chinese"

hzp = People() # 先外部類實例化

hzp2 = hzp.Chinese() # 再內(nèi)部類實例化

print hzp2.country

方法三:

class People():

color = "yellow"

__age = 27

class Chinese(object):

country = "I am chinese"

print People.Chinese.country # 類的方法

print People.Chinese().country # 相當于People.Chinese()實例化,最后調(diào)用屬性

12.構(gòu)造函數(shù)和析構(gòu)函數(shù)

構(gòu)造函數(shù)用于初始化類的內(nèi)部狀態(tài),提供的函數(shù)是__init__(),不給出則會提供默認方法

析構(gòu)函數(shù)用于釋放占用的資源,提供的函數(shù)是__del__(),不給出則會提供默認方法

1)__str__(self):只能使用return,不能使用print,無需調(diào)用和打印,會自動調(diào)用

例子1:

class People():

color = "yellow"

__age = 27

class Chinese(object):

country = "I am chinese"

def __str__(self): # 定義__str__(self)

return("This is a test") # return返回結(jié)果,不能使用print

ren = People()

print ren # 類實例化后,自動調(diào)用

運行結(jié)果:

This is a test

2)__init__():初始化值,不需調(diào)用,實例化后,自動執(zhí)行,也可以傳值

例子2:

class People():

color = "yellow"

__age = 27

class Chinese(object):

country = "I am chinese"

def __str__(self):

return("This is a test")

def __init__(self):

self.color = "black"

ren = People()

print ren.color # 實例化后,變成“black”

print People.color # 類直接調(diào)用,color值不變

運行結(jié)果:

black

yellow

3)__del__():在腳本最后執(zhí)行,釋放資源;如果沒有析構(gòu)函數(shù)釋放資源,也沒關(guān)系,python通過gc模塊,實現(xiàn)垃圾回收機制

例子3:

class People():

def __init__(self): # 構(gòu)造函數(shù),打開文件

print("Initing...")

self.fd = open("/etc/hosts","r"):

def __del__(self): # 析構(gòu)函數(shù),關(guān)掉文件

print("End")

self.fd.close()

ren = People()

ren

運行結(jié)果:

Initing...

End

總結(jié)

以上是生活随笔為你收集整理的python导入模块以及类_python—模块导入和类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。