zoukankan      html  css  js  c++  java
  • python 类

    # -*- coding: utf-8 -*-
    '''
    构造函数的作用是初始化实例变量
    析构函数作用是实例销毁的时候调用, 可以在析构函数中做 关闭连接等操作
    
    类中的方法必须有一个self 的参数, 掉用类方法的本质是:类.方法(实例):
    比如: p1.sayName() => people1.sayName(p1)
    
    
    
    '''
    
    '''
    简单的类
    '''
    
    
    class people1:
        #类变量 , 类没有实例化的时候就可以调用
        n=123 
        list=[]
        #构造函数
        def __init__(self,name,sex):
            #实例变量(静态属性),作用域是实例本身
            self.name = name
            
            #设置私有属性
            self.__sex = sex
            
        def getSex(self):
            return self.__sex
        #类方法(动态属性)
        def sayName(self):
            print("my name is :" ,self.name)
    
    
        def __del__(self):
            print("call del -- ")
            pass
    
    
    #在类初始化之前可以调用类变量
    print(people1.n)
    
    #实例化生成一个对象
    p1 = people1("xiaoQiang","man")
    p1.sayName()
    
    p2 = people1("wangcai","woman")
    #为 实例添加一个属性
    p1.age = 25
    print(p1.age)
    
    print(p1.getSex())
    
    #删除一个属性
    # del p1.age
    # print(p1.age)
    
    
    
    #实例中也可以调用类变量,
    #修改类变量在本实例中显示修改, 而在其他实例中没有被修改,其实本质就是在实例中添加一个属性 n
    #如果类属性是一个list 类型, 那么在p1中修改,在其他实例中也会发生改变
    # p1.n=456
    print(p1.name,p1.n)
    p1.list.append("aaa")
    print(p2.list)

    多继承:

    # -*- coding: utf-8 -*-
    
    '''
    经典类
    class A:
        pass
        
        
    新式类:
    class B(object):
        pass
        
    新式类与经典类的一个差别就是多继承的时候(python2) , 新式类是按照广度优先进行继承, 经典类是按照深度优先进行继承
    python3 都是按照广度优先进行继承
    '''
    
    
    class People(object):
        def __init__(self,name):
            self.name = name
        
        def eat(self):
            print("%s eating----"% self.name)
            
        def sleep(self):
            print("%s sleep----"% self.name)
          
    class Relation(object):   
        def __init__(self):
            pass
        
        def makeFriends(self,obj):
            print("%s make Friend---%s" %(self.name , obj.name))
    
    
    
            
    class Man(People,Relation):
        def __init__(self,name,sex):
            super(Man,self).__init__(name)
            self.sex = sex
        
    
    class Woman(People,Relation):
        def __init__(self,name,sex):
             super(Woman,self).__init__(name)
             self.sex = sex
        
        
    m1 = Man("xiaoQiang","Man")
    w1 = Woman("ruhua","Woman")
    m1.makeFriends(w1)
  • 相关阅读:
    将springboot安装成windows服务启动。
    jackson将json数组转成List、普通数组。
    maven编译正常,运行报错:中没有主清单属性
    [SQL]SUTFF内置函数的用法 (删除指定长度的字符并在指定的起始点插入另一组字符)
    sql语句中charindex的用法 可用于截取字符串
    C# 中怎么将string转换成int型
    C#判断奇偶数的函數
    asp.net 下载Excel (数据流,不保存)--客户端
    C# DateTime 日期加1天 减一天 加一月 减一月 等方法(转)
    ASP.NET jquery ajax传递参数
  • 原文地址:https://www.cnblogs.com/gaizhongfeng/p/7871692.html
Copyright © 2011-2022 走看看