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!"

你可能感兴趣的:(python,开发语言)