python基础-面向对象(1)
引入:
当我们在进行游戏制作时,往往需要多个角色,但是其都有许多相似的属性,例如:名字,年龄,性别...这些共有的属性通过基本的代码实现会有较高的重复率,并且使用起来也多有不便,此时,我们就需要引入面向对象来使问题得到简化。
面向对象的使用:
面向对象编程适用于:
复杂的·,拥有开放式结局的程序(游戏,购物)
在我们进行创建人物时,我们可以构建一个类,然后进行实例化,一次来进行面向对象的使用
class person():
def __init__(self,name,age,gender,user): #定义一个person类,定义多个属性
self.name = name
self.age = age
self.gender = gender
self.user = user
class student(person): #继承person的属性
def resigter(self,password): #设设注册方法,进行拥护注册
self.password = password
line = "{}|{}".format(self.user,self.password)
with open("login.txt",mode="a",encoding="utf-8") as file:
file.write("{}\n".format(line))
class teacher(person): #继承
def find_user(self,user): #定义find——user方法,判断学生是否已经注册用户
self.user_root = user
flag = 0
with open("login.txt",mode="r",encoding="utf-8") as file_root:
for line in file_root:
user_root_file = line.strip().split("|")[0]
if self.user_root == user_root_file:
flag = 1
if flag:
print("{}在班级中".format(self.user_root))
else:
print("{}不在班级中".format(self.user_root))
马老师 = teacher("马宝国","18","男","马老师") ##实例化,产生一个teacher类
小天 = student("小天","12","男","小天才") #实例化,产生一个学生类
小天.resigter("admin") #使用resigter方法进行注册
"调用find方法,查找学生注册情况"
def index():
while True:
user = input("输入你要查询的用户名:")
if user.upper() == "Q":
break
马老师.find_user(user)
if __name__ == '__main__':
index()
面向对象的特点:
继承:
继承是指子类继承父类的所有属性与方法,当子类在自己的属性中未找到时,便回到父类中寻找,一次向上寻找
属性的继承
class person():
def __init__(self,name,sex,age):
self.name = name
self.sex = sex
self.age = age
class student(person):
def __init__(self,num):
self.num = num
super().__init__(name="海绵宝宝",sex="男",age="18")
def get_sex(self):
print(self.sex)
def get_num(self):
print(self.num)
海绵 = student("545131")
海绵.get_sex()
海绵.get_num()
方法的继承
class person():
def printw(self):
print("父进程开始执行")
print("*"*20)
print("父进程执行完毕")
class child(person):
pass
ini = child
ini.printw(ini)
多态
多态的定义是:允许不同类的对象对同一消息做出响应。简单地说,多态就是指多种形态,具体来说,是指子类对象可以像父类对象那样使用,同样的一个方法调用可以有不同的实现方式。
具体来说,多态是指同一个操作可以作用与相同的对象产生不同的结果
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
pass
class Dog(Animal):
def speak(self):
return "Woof!"
class Cat(Animal):
def speak(self):
return "Meow!"
dog = Dog("Buddy")
cat = Cat("Fluffy")
print(dog.speak()) # 输出 "Woof!"
print(cat.speak()) # 输出 "Meow!"