1、创建导入和使用模块
代码写在扩展名为py的文件,每一个py文件都是一个模块,这些代码可能是变量或者函数的定义,越是复杂的项目模块运用就越多,因为无法将所有的代码都放在同一个py文件里面。
如果一个py文件是一个用来提供信息模块,则其中写入的函数可以被其他的python代码使用,eg:util.py文件中的函数def plot(),可以在main.py中用import util来引用
import util
a = util.plot()
2、定义和使用类
用class关键字定义一个类,比如学生人群的身高、体重、血型等,用__init__构造方法中定义一些字段来存放相关的信息数据,定义好类后可以简单地创建该类的一个实例,类似于调用函数。
class Student():
def __init__(self): #创建一个实例时会自动调用
self.name = 'abc'
self.age = 100
student1 = Student() #创建实例
student1.age += 1
print(f'学生1的年龄增长到{student1.age}')
class Net(nn.Module): #创造类的模块
def __init__(self):
super(Net, self).__init__()
self.fc1 = nn.Linear(28*28, 256)
self.fc2 = nn.Linear(256, 64)
self.fc3 = nn.Linear(64, 10)
def forward(self, x):
x = F.relu(self.fc1(x))
x = F.relu(self.fc2(x))
x = self.fc3(x)
return x
net = Net() #创造一个实例对象
3、 类的构造方法__init__和参数self的作用
__init__是类的构造方法,也是一类特殊的方法,当创建类的实例时候,构造方法就会被调用,一般用于初始化实例中的数据, init的第一个参数是类本身,可以用该参数访问类的其他成员,一般写成self,也可以写成其他的,self代表的是实例本身
4、类的继承
如果需要改写类的代码,则可以使用类的继承,被继承的类称为父类。
class Unit():
def __init__(self,hp,power):
self.hp = hp
self.power = power
class Hero(Unit): #该类为上一个类的子类,父类写在()里面
def __init__(self,hp,power,name): #增加一个name字段
super().init__(hp,power) #super调用父类的__init__方法,为字段hp、power赋值,super本身也是一个类
self.name = name #是该类自己的字段
hero_name = input('name:')
hero = Hero(100,10,hero_name)
enemy = Unit(100,10)
print(f'{hero.name},{hero.hp},{hero.power}')
5、类的方法重写
子类可以对继承自父类的内容进行一定的改写,通常因为两者在该方法实现的过程中产生差异
class Unit():
def __init__(self,hp,power):
self.hp = hp
self.power = power
def show_info(self): #父类中定义的类
print(f'hp{self.hp},power{self.power}')
class Hero(Unit): #该类为上一个类的子类,父类写在()里面
def __init__(self,hp,power,name): #增加一个name字段
super().init__(hp,power) #super调用父类的__init__方法,为字段hp、power赋值,super本身也是一个类
self.name = name #是该类自己的字段
def show_info(self): #子类重写继承自父类的方法
print(f'hp{self.hp},power{self.power},name{self.name}')
hero_name = input('name:')
hero = Hero(100,10,hero_name)
enemy = Unit(100,10)
hero.show_info()
enemy.show_info()
print(f'{hero.name},{hero.hp},{hero.power}')
6、文件的读写
file = open("xxx.txt",'w') #w表示可以写入,r表示可以阅读、b表示用二进制格式展开,调用open函数以后可以自动生成一个可以实际读写文件的对象
lines = file.readlines() #读文件所有行,readline读文件一行,writeline就是写文件
file.close() #关闭文件,这样其他需要这个文件的程序可以顺利访问该文件