python基础之文件操作和简单的类

文件操作

#文件删除
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)

猜你喜欢

转载自blog.csdn.net/zx520113/article/details/83857946