Python函數、類的導入和文件操作總結


調用函數有三種方式

一,導入整個模塊(所有函數)

導入 import module_name

調用 module_name.function_name()

    #在這種情況中,不會出現下面兩種方式的缺點,即具有相同函數名的問題,因為一個文件中不存在兩個相同的文件名。但缺點是能不清晰顯示出使用到的函數,調用的時候也需要重復寫模塊名。

 

二,導入模塊中單個或多個函數

導入 from module_name import function_name1(function_name2...)

調用function_name()

    #在這種情況中,雖然能清楚的表示出使用到的函數,如果是多個不同的模塊,但其中的函數名有重疊時,后導入的模塊函數為能使用的函數,即產生覆蓋函數。

 

三,導入模塊中所有的函數

導入 from module_name import *

調用 function_name()

    #這種方法不推薦使用,因為它集合了前兩種方式的缺點,即導入不清晰,調用全部函數會更容易造成覆蓋函數。

 

 

 

 

 

 

導入類

一,導入整個模塊(所有類)

導入 import module_name

調用類的屬性和方法:創造實例X = module_name.class_name( ,)

                                        X.屬性

                                        X.方法()

#雖然開頭沒有列出用到的所有類,但你清楚地知道在程序的哪些地方使用了導入的模塊,還避免了導入模塊中的每個類可能引發的名稱沖突。

 

二,導入單個或多個類

導入 from module_name import class_name1(class_name2 ...)

調用類的屬性和方法: 創造實例X = class_name( ,)

                                        X.屬性

                                        X.方法()

#清楚地列出用到的類,但可能會造成名稱的沖突

 

三,導入模塊中所有的類

導入 from module_name import *

調用類的屬性和方法: 創造實例X = class_name( ,)

                                         X.屬性

                                         X.方法()

#不推薦使用,即沒有列出使用到的類,又有可能造成名稱沖突。

總結:二、三方法:假如類名相同,將會產生覆蓋類,即后輸入的類有效,即使前面的類中的屬性和方法比覆蓋類多,也將無效。簡而言之,產生覆蓋后,前面的類將全部無效。

 

 

文件

讀取文件

#以下file_object為一個變量,可以隨意設置名稱。

with open('(文件路徑)file_name') as file_object:

   x = file_object.read()

或 for line in file_object:

或 lines = file_object.readlines()    

#for循環遍歷文件中每一行

#方法readlines從文件中讀取每一行,並將其存儲在一個列表中

 

寫入文件(如果沒有文件則自動新建一個)

with open('(文件路徑)file_name','w') as file_object:

file_object.write('數據')

 

附加模式

with open('(文件路徑)file_name','a') as file_object:

file_object.write('數據')

 

 

 

存儲數據(寫入后可以立即調用)

json.dump()和json.load()的使用示例:

   import json

   numbers = [2,3,4,5,6,8]

   filename = 'numbers.json'(文件名)

   with open(filename,'w') as f_obj:

       json.dump(numbers,f_obj)

 

   import json

   filename = 'numbers.json'

   with open(filename,'w') as f_obj:

       numbers = json.load(f_obj)

   print(numbers)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM