• python——面向对象(二)


    """""
    类成员:
    
    一.字段
    1.普通字段:保存在对象中,执行只能通过对象访问
    2.静态字段:保存在类中,执行可以通过类 也可以通过对象访问
    他们的区别在于静态对中间人所共有的部分更加便利
    如果不进行更改可以理解为一个全局变量
    
    二.方法
    1.普通方法:保存在类中,由对象来调用,默认有self参数,它指对象
    2.静态方法:保存在类中,由类直接调用
     静态方法使用可以不用建立内存,这样可以不用建立对象 直接进行访问
    3.类方法:保存在类中,由类直接调用,默认有cls参数,它对应当前类
    类方法与静态方法没有太大的区别 可以将类方法看为静态方法的变种
    
    应用场景:
    如果对象中需要保存一些值,执行某功能时,需要使用对象中的值->普通方法
    不需要任何对象中的值,用静态方法
    """
    #字段案例:
    class Province:
        coutry='中国'
        #静态字段,属于类 不属于方法 所以写静态字段直接写在类里
        def __init__(self,name):
            self.name=name
            #self.coutry='中国'
            #普通字段
            #用静态字段就不用每个省存一个中国了
    print(Province.coutry)
    
    #方法案例:
    class Foo:
        def bar(self):#普通方法
            #self是对象
            print('bar')
        @staticmethod
        def sta():#静态方法
            print('123')
        @staticmethod
        def sta1(a1,a2):#静态方法带变量
            print(a1,a2)
        @classmethod
        def classmd(cls):
            #cls是类名
            print(cls)
            print('classmethod')
    
    Foo.sta()
    #123
    Foo.sta1(1,3)
    #1 3
    Foo.classmd()
    #<class '__main__.Foo'>
    #classmethod
    
    """""
    类的属性
    
    """
    
    #案例
    class Foo:
        @property
        def ang(self):
            print('abc')
            return 1
    
        @ang.setter
        def angg(self, val):
            print(val)
    
    obj=Foo()
    r=obj.ang#abc#z这样调用不用加括号
    print(r)#1
    
    obj.angg=123#123
    #将其改为123
    
    #利用类的属性 进行分页
    class Pergination:
        def __init__(self,current_page):
            try:
                p=int(current_page)
            except Exception as e:
                p=1
            self.page=p
        @property
        def start(self):
            val=(self.page-1)*10
            return val
        @property
        def end(self):
            val=(self.page)*10
            return val
    
    li=[]
    for i in range(1000):
        li.append(i)
    
    while True:
        p=input('输入查看的页码:')
        obj=Pergination(p)
        print(li[obj.start:obj.end])
  • 相关阅读:
    securefile allocation chunks
    脚本:Segment Space Usage Explorer
    Script:10g中不用EM显示Active Session Count by Wait Class
    理解IMPDP ORA19505、ORA31640错误
    了解ocssd.bin如何控制RAC节点重启
    Oracle等待事件:NULL EVENT
    LGWR TRACE Warning: log write time
    MySql隔离级别多线程并发读取数据时的正确性
    Oracle事务处理—隔离级别
    Oracle函数详解
  • 原文地址:https://www.cnblogs.com/zzzi/p/11478437.html
Copyright © 2020-2023  润新知