zoukankan      html  css  js  c++  java
  • 面向对象基础2

    面向对象基础2

    实例化对象

    • 案例及思考

      class File:
          def read(self):
              with open(self.xxxx,'r',encoding="utf-8") as f:
                  data = f.read()
          def write(self,):
              with open(self.xxxx,"a",encoding="utf-8") as f:
                  f.write(self.xx)
      obj1 = File()
      obj1.xxxx = "test.log"
      obj1.read()
      obj1.xx = "李子柒"
      obj1.write()
      #类似于函数的函数?对于多个函数需要引用用一个参数时,我们把它提取出来,哐,给一个公共的路劲
      #也可以设计多个不同的类型的参数
      #如下例子只适用于一个xxxx参数变量时
      obj2 = File()
      obj2.xxxx = "info.log"
      obj2.read()
      obj2.write()
       
      

    类的初始化

    • 基础样式
    class Person:
        def __init__(self):
            self.name = "杨子良"
            self.age = 19
            self.gender ="男"
            # print("执行init")
        def show(self):
            temp = "我是%s,年龄:%s,性别:%s"%(self.name,self.age,self.gender)
            print(temp)
    p1 = Person()
    p1.show()
    #虽然两个函数之间是并列关系,但依然可以执行
    #原因:__init__当调用函数时其自动化执行,如果换成奇谈的函数便无法执行
    
    • 加参数
    class Person:
        def __init__(self,n,a,g):
            self.name = n
            self.age = a
            self.gender = g
            # print("执行init")
        def show(self):
            temp = "我是%s,年龄:%s,性别:%s"%(self.n,self.a,self.g)
            print(temp)
    p1 = Person("杨子列",25,"男")
    p1.show()
    p2 = Person("杨子莲",23,"女")
    p2.show()
    #思考:利用self这个桥梁尽可能的将同一个类中函数重复的参数进行函数间的省略及通用,在其中又借助__init__这个小工具进一步简化
    

    总结

    • 如果写代码时,函数比较多比较乱。
      • 1.可以将函数归类并放到同一类中
      • 2.函数如果有一个反复使用的公共参数,则可以放到对象中。

    应用案例

    #read、write、delte在操作的时候都需要获得共同的路径path,可利用下列的方式进行改进
    class File():
        def __init__(self,path):
            self.file_path = path
    
        def read(self):
            print(self.file_path)
    
        def write(self):
            print(self.file_path)
    
        def delte(self):
            print(self.file_path)
    
    p1 = File("log.txt") #将值赋给了p1
    p1.read()
    p1.write()
    p1.delte()
    

    案例二

    • class Person:
          def __init__(self,user,pwd,email):
              self.username = user
              self.password = pwd
              self.email = email
      user_list = []
      user = input("请输入用户名:")
      pwd = input("请输入密码:")
      email = input("请输入邮箱:")
      p = Person(user,pwd,email)
      user_list.append(p)
      for item in user_list:
          temp = "我的名字是:%s,密码:%s,邮箱是%s"%(item.username,item.password,item.email)
          print(temp)
      #我认为这是为了练习而强行练习
      
      #改进版
      class Person:
          def __init__(self,user,pwd,email):
              self.username = user
              self.password = pwd
              self.email = email
          def info(self):
              return "我的名字是:%s,密码:%s,邮箱是%s"%(item.username,item.password,item.email)
      user_list = []
      user = input("请输入用户名:")
      pwd = input("请输入密码:")
      email = input("请输入邮箱:")
      p = Person(user,pwd,email)
      user_list.append(p)
      for item in user_list:#将p传递给了item
          msg = item.info()
          print(msg)
      
  • 相关阅读:
    客户端模块化的精益求精
    从风控的角度解析如何防止客户刷单
    ubuntu 安装 codelite
    使用curl在命令行中下载文件
    awk的使用
    优秀web资源
    Asp.net 生成静态页面
    提高ASP.NET首页性能的十大方法
    ASP.NET伪静态
    URLRewriter.dll的使用
  • 原文地址:https://www.cnblogs.com/yangzilaing/p/13719811.html
Copyright © 2011-2022 走看看