• 搭建测试环境、面向对象


    1.搭建测试环境

    import os,sys
    BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    sys.path.insert(0,BASE_PATH)
    #电脑没装paycharm时,加入这俩行,代替mark source root

    搭建测试环境:
    1、申请一台服务器
    2、安装依赖软件
    python3
    flask # 确认需要安装的第三方模块
    pymysql
    redis
    mysql
    redis # 确认使用的数据库和开发语言及版本
    3、获取代码
    https: // git.coding.net / qiuqiu13 / day8.git
    4、修改配置文件 # 确认哪些需要修改,并测试是否修改正确
    5、编译、打包(java、c、c + +) # 根据需求,有时候不需要
    6、导入基础数据
    建表 # 初始化数据库,建立表结构
    7、启动程序

    日常部署:
    1、更新代码
    2、修改表结构(如果数据有修改的话)
    3、修改配置文件
    4、编译、打包(java、c、c++)
    5、重启程序

    2. 面对对象编程

    下面标注了有关类的名词与说明
    class Car: #Car是类,用class来定义一个类,类名首字母最好大写。类是一个种类、一个模型,将相似功能封装到一个类中,里边用不同函数实现不同功能
        wheel = 4 #wheel是类变量,即直接在类下面定义的变量,没有加self的,每个实例都可以用.节省内存
        def __init__(self,color,p):  #构造函数。类在实例化的时候会自动执行的一个函数
            self.color = color #实例变量,加了self的变量,必须得实例化且调用方法之后才可以使用。也可以定义为一个实例(对象)
            self.p = p
    
        def help(self): #实例方法,需要传self的方法,必须实例化之后才可以使用,实例方法里面可以随便通过self来调用实例方法,类方法,静态方法,类变量。
            print('汽车有%s个轮子'%self.wheel)
            print('汽车的颜色是%s'%self.color)
            print('牌子%s'%self.p)
            print('='*10)
            self.haha()
            self.check_wheel()
    
        @classmethod   #要定义一个类方法
        def check_wheel(cls): #类方法
               # 1、不需要实例化就可以调用,如Car.check_wheel(cls)
               # 2、它可以使用类变量
               # 3、调用其他的类方法。
               # 4、它不可以使用实例方法、实例变量
               # 如果类里面的这个方法,它并没有使用到其他的实例变量、或者其他实例方法,那么就给他定义成类方法
            print('cls的内存地址',id(cls))
            print(cls.wheel)
            cls.haha()
    
        @classmethod
        def haha(cls):
            print('哈哈哈')
            cls.help2()
    
        @staticmethod #静态方法,如果不需要传参,不需要调用变量,单纯输出值,可以使用静态方法
                # 1、不需要实例化就可以调用的
                # 2、它就是一个定义在类里面的普通函数,不能使用实例变量、实例方法、不能使用类变量、类方法。
        def help2():  #调用时,用对象.help2
            print('这个类的作用是造汽车,它里面有xxx方法')
    
        @property  #属性方法,调用有些特殊。如print(mcb.yesterday),而不能用print(mcb.yesterday())
        def yesterday(self):
            import datetime
            res = datetime.date.today()  + datetime.timedelta(-1)
            return str(res)
    
        def tom(self):
            import datetime
            res = datetime.date.today()  + datetime.timedelta(1)
            return str(res)

    def __del__(self): #
    实例在销毁的时候自动执行的函数
            pass
    Car.help2()
    #调用静态方法 mcb = Car('赤橙黄绿青蓝紫','马春波') #实例化,mcb的id和self的id一样。 print(mcb.yesterday) #调用属性方法 print(mcb.tom()) #调用实例方法 mcb.wheel = 28 #追加定义变量,只对实例方法起作用 mcb.haha() mcb.help() mcb.help2() print('Car的内存地址',id(Car)) Car.check_wheel() Car.wheel= 19 print(Car.wheel) benc = Car('黑色','奔驰') benc.help() bmw = Car('白色','宝马') bmw.help()

    3.self的作用
    方法中变量前面不加self,该变量只能供该方法使用。
    方法中变量前面加上self,该变量能供其他实例方法使用。
    self的id和实例化后的实例(对象)的id一样,即self代表的是本类对象。
    self还可以追加变量:如
    class Person:
        def __init__(self,name):
            print('开始造人了',name)
            self.name = name  # 实例变量
            self.age = 18
    
        def cry(self,size):
            print('%s在%s哭。年龄是%s'%(size,self.name,self.age))
            self.size = '大哭'
            self.date = '20190106'
            
        def say(self):
            print('我叫%s,我住在%s.'%(self.name,self.addr))
            print(self.size)
            print('Jin天的日期',self.date)
            self.help()
    
        def help(self):
            print(self.date)
    
    
    mcb = Person('马春波')
    cq = Person('陈琦')
    mcb.grilfriend = cq #加一个变量,变量可以为对象
    print('马春波的女朋友',mcb.grilfriend.name)
    mcb.grilfriend.cry('')
    
    mcb = Person('马春波')
    mcb.addr = '北京'  #原类中没有addr变量,这儿加了一个,可以供下边调用的函数使用。
    mcb.cry('')  #cry(mcb,大)
    mcb.say()
    
    #该功能与上边的加grilfriend变量一样
    def car(self,car_name): #
        self.car_name = car_name
        #函数里面给mcb加了一个变量
    car(mcb,'奔驰')#把mcb这个实例传给了self,self指的就是mcb这个实例
    print(mcb.car_name)

    4.私有、继承
    class Lm:
        money = 1000000
        house = 5
        def driver(self):
            print('会开车')
    
    class Mcb(Lm): #这里继承了类Lm, Lm叫做父类,其中所有的属性和方法这儿都能用,节省了写重复代码。该类中如果有父类一样的方法,优先用该类的。
        def about_me(self):
            print('我有 %s 钱 ,%s 房子'%(self.money,self.house))
            self.driver()
    
        def driver(self):
            print('会开28个轮子的汽车')
    
    
    m = Mcb()
    m.driver()
    m.about_me()
    class My:
        def test(self):
            self.__password = 123456 #加了双下划线的变量,类的外部不能访问,称为私有。
        def say(self):
            print('password',self.__password)
        def __set_password(self):  #加了双下划线的方法,类的外部不能访问,称为私有。
            self.__password = 7890
        def update(self):
            self.__set_password()
    
    m = My()
    m.test()
    m.say()
    m.update()
    m.say()
    
    
  • 相关阅读:
    【最强】微软Tech Summit 2017动手实验室教程
    【心得体会】我考完MOS我明白了…
    惊喜哈哈哈
    89C51单片机的学习
    cookie和session
    Ajax
    ORM创建多表以及多表的增删改查
    orm单表查询和模糊查询
    django的ORM
    django的视图函数
  • 原文地址:https://www.cnblogs.com/fangfangzhang/p/10923511.html
Copyright © 2020-2023  润新知