調用函數有三種方式
一,導入整個模塊(所有函數)
導入 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)