-
通过实例方法不能修改类的属性
查看全部 -
为了操作类的私有属性,需要定义类的方法。
class Animal(object): __localtion = 'Asia' def __init__(self, name, age): self.name = name self.age = age @classmethod def set_localtion(cls, localtion): cls.__localtion = localtion @classmethod def get_localtion(cls): return cls.__localtion print(Animal.get_localtion()) # ==> Asia Animal.set_localtion('Afica') print(Animal.get_localtion()) # ==> Africa
> 类方法需要使用@classmethod来标记为类方法,否则定义的还是实例方法
> 类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.__localtion 实际上相当于Animal.__localtion。
查看全部 -
write向文件内写入若干字符,它接受一个字符串参数,表示需要写入的字符串。
f = open('test.txt', 'w')
f.write('Hello World\n')
f.close()writelines向文件内容写入多行数据,它接受一个列表,表示需要写入的字符串列表。
lines = ['Hello World\n', 'Hello Python\n', 'Hello Imooc\n']
f = open('test.txt', 'w')
f.writelines(lines)
f.close()
查看全部 -
read读取若干字符
s = f.read(5)
print(s) # ==> Hello当read()之后,访问文件的游标就会移动到第六个字符前面,此时,继续read,将得到Hello后面的结果。
s = f.read(6)
print(s) # ==> ' World'readline可以读取文件中的若干个字符,它也提供一个参数size,可以指定读取字符的数量,但是readline()方法遇到一行结束的时候,就会返回,即readline最多返回一行的所有字符。
f.close()
f = open('test.txt', 'r') # 重新打开文件
s = f.readline(20)
print(s) # ==> 'Hello World.\n'readlines读取多行,返回列表,它提供一个hint参数,表示指定读取的行数,没有指定则默认以列表的形式返回文件所有的字符串。
f.close()
f.open('test.txt', 'r')
s = f.readlines()
print(s) # ==> ['Hello World.\n', 'Hello Python.\n', 'Hello Imooc.\n']
查看全部 -
实例的方法指的就是在类中定义的函数.
实例方法的第一个参数永远都是self,self是一个引用,指向调用该方法的实例对象本身.
除此以外,其他参数和普通函数是完全一样的。
在外部调用实例方法时,是不需要显式传递self参数的。
查看全部 -
不能被外部访问的属性称为私有属性。私有属性是以双下划线'__'开头的属性。
在外部访问私有属性将会抛出异常,提示没有这个属性。
虽然私有属性无法从外部访问,但是,从类的内部是可以访问的。私有属性是为了保护类或实例属性不被外部污染而设计的。
查看全部 -
属性可以分为类属性和实例属性;
类属性和实例属性的优先级的问题:
实例属性的优先级是要高于类属性的,在操作实例的时候,优先是操作实例的属性。
> 尽量不要通过实例来修改类属性,否则很容易引发意想不到的错误。
查看全部 -
定义类属性可以直接在 class 中定义。
class Animal(object): localtion = 'Asia' def __init__(self, name, age): self.name = name self.age = age dog = Animal('wangwang', 1) cat = Animal('mimi', 3) print(dog.localtion) # ==> Asia # 类属性,也可以通过类名直接访问 print(Animal.localtion) # ==> Asia
类属性也是可以动态添加和修改的;
当改变的时候,所有实例可以访问到的类属性都会变更。
Animal.localtion = 'Africa' print(cat.localtion) # ==>Africa print(dog.localtion) # ==>Africa
查看全部 -
属性初始化,
在定义类时,可以为类添加一个特殊的__init__()方法,当创建实例时,__init__()方法被自动调用。
> __init__() 方法的第一个参数必须是 self;后续参数则可以自由指定,和定义函数没有任何区别。
在实例化的时候,需要提供除self以外的所有参数。
查看全部 -
类的定义:
通过class关键字来定义,类名开头大写。
创建实例使用类名+(),类似函数调用的形式创建。
查看全部 -
面向对象编程:
程序设计的范式;
抽象并建立对象模型;
程序视不同对象相互调用的逻辑。
概念:
类,抽象出来的每一个对象;
实例,类的模型;
实例化,从类到实例的过程;
属性,属于某一个类的属性。
查看全部 -
大量的非文本文件,比如图片、压缩文件、视频文件、音乐文件等等,这种文件统称为二进制文件。
f = open('test.jpg', 'rb')
f.close()
查看全部 -
Python 提供了open()函数,可以打开一个文件,得到一个文件file对象,而file对象提供相关的方法对文件内容进行读写等操作。
open()函数有若干个参数,比较重要的是以下三个参数:
文件路径:指定需要打开的文件的文件路径
打开模式:针对不同文件(二进制文件、文本文件)以及不同操作(读操作、写操作),会有不同的打开模式
编码:设定打开文件的默认编码
为了安全操作文件,文件使用完毕后,需要使用close()函数正确关闭。
在当前目录下新建一个test.txt文件,并新建一个main.py,
f = open('test.txt', 'r') # 打开test.txt文件
type(f) # 打印f的类型(<class '_io.TextIOWrapper'>)
f.close() # 关闭文件
查看全部
举报