python基礎之檔案操作和簡單的類
阿新 • • 發佈:2018-11-10
檔案操作
#檔案刪除 import os path=".\\data\\" for s in os.listdir(path): filename=path+s print(filename) # os.remove("test.txt") #檔案開啟 f=open('test.txt',"w")#以寫入的方式開啟,沒有自動建立 f.write("data")#寫入資料data f=open('test.txt','r') s=f.read()#讀取f中內容,並將返回的字串賦值給s f.readline()#讀取一行 f.readlines()#讀取所有行 f=open('test.txt','wb+')#以二進位制的形式開啟 f.write(b'data')#以bytes物件的形式進行讀寫 f.close()#關閉檔案 #通過with開啟檔案,其他的一樣 with open("test.txt",'wb+') as f: f.write(b"data") b1=bytes('data','UTF-8')#將字串轉化成二進位制數 b=b1.decode()#解碼,將二進位制數轉化成字串
定義類:
"""定義一個類,列印兩個顯示函式"""
class MyClass1:
def Func(self):
print("I love You")
def Func1(self):
print("123")
myc=MyClass1()
print(myc.Func())
print(myc.Func1())
類的預設成員:
"""預設成員""" class MyClass: def __init__(self,name): self.name=name def getname(self): return self.name myc=MyClass("Name") print(myc.getname())
@classmethod定義類方法:
"""@classmethod定義類方法"""
class MyClass:
def f(self):
return 'I Love You'
@classmethod#定義類方法,定義了這句才可以直接MyClass.fcls()呼叫,否者會報錯
def fcls(cls):
return '類方法: I Love You'
myc=MyClass()
print(myc.f())
print(myc.fcls())
print(MyClass.fcls())
定義靜態類:
"""定義靜態類方法""" class MyClass: @staticmethod def fstatic(): return '靜態類: I Love You' myc=MyClass() print(myc.fstatic()) print(MyClass.fstatic())
定義類的動態屬性:
"""定義類的動態屬性"""
class Record:
pass
Anan=Record()
Anan.name="Test"
Anan.age=20
print(Anan.name)
print(Anan.age)
del Anan.name
del Anan.age
#通過del實現例項物件屬性的刪除
#刪除後再方位動態屬性類會報錯
# print(Anan.name)
# print(Anan.age)
限制屬性類:
"""限制類屬性,通過__solots__實現"""
#定義了顯示類屬性,在呼叫新增沒有的屬性時會報錯
class Record:
__slots__ = ('name','age')
Anna=Record()
Anna.name='Test'
Anna.age=20
# Anna.test='test'#出錯
私有變數的獲取和修改:
__Occupation='Test'#class中的室友變數定義,直接放在class下一行進行私有變數定義,通過set和get來說修改和獲取該私有屬性的值,
class MyClass2:
__Occupation='Test'
def __init__(self,name):
self.name=name
def getrecode(self):
return self.name
def getOccupation(self):#返回私有變數實現
return self.__Occupation
@property
def Occupation(self):#將get函式裝成屬性
return self.__Occupation
@Occupation.setter
def Occupation(self,value):#將set函式裝飾成屬性
if (value!='inventor'and(value!='Love')):
#如果修改的值不是這兩個則提示修改非法
raise (ValueError('Occupation must be inventor or Test!'))
else:
self.__Occupation=value
myc=MyClass2('name')
print(myc.Occupation)
myc.Occupation='inventor'#以屬性的訪問方式來呼叫裝飾器的函式,進行私有變數修改
print(myc.getOccupation())
print(myc.Occupation)