类(一)

一、封装

1、如何创建类
    class 类名:
        pass
        
2、创建方法
    构造方法,__init__(self,arg)
        obj = 类('a1')
    普通方法
        obj = 类(‘xxx’)
        obj.普通方法名()
        
3、面向对象三大特性之一:封装

    class Bar:
        def __init__(self, n,a):
            self.name = n
            self.age = a
            self.xue = 'o'
            
    b1 = Bar('alex', 123)
    
    b2 = Bar('eric', 456)

二、继承

class father:

  f1(sef,arg):

   pass

  f2(self, arg)

   pass

 

class son:

  f1(self, arg):

   pass

 f2(self, arg):

print('test')

super(son,self).f2(arg)

father.f2(self,arg)

三、多态

在一个方法里边传入不同的变量类型就是多态

四、

1、类的成员变量

class Provice:

    country  = '中国' #静态变量可以通过类和对象来访问

  def __init__(self, name):

      self.name=name  #普通变量只能通过对象来访问

2、方法

class A:

   #普通方法 

def f(self, name):

         self.name = name

#静态方法

   @staticmethod

   def stat(a1, a2):

      print(a1,a2)

#类方法

@classmethod

def f2(cls):

   print(cls)

  print('ssss')

a = A() #普通方法通过对象来调用

a.f('123')
A.stat(1, 2) #静态方法通过类直接调用

A.f2(A)


类成员:
    # 字段
        - 普通字段,保存在对象中,执行只能通过对象访问
        - 静态字段,保存在类中,  执行 可以通过对象访问 也可以通过类访问
        
    # 方法
        - 普通方法,保存在类中,由对象来调用,self=》对象
        - 静态方法,保存在类中,由类直接调用
        -   类方法,保存在类中,由类直接调用,cls=》当前类

    ######## 应用场景:
        如果对象中需要保存一些值,执行某功能时,需要使用对象中的值 -> 普通方法
        不需要任何对象中的值,静态方法
        
        
    # 属性,特性
        - 不伦不类

五、属性

Class A:

  __init__(self, name):

      self.name = name 

      self.age = age

@property

def per(self):

  print(self.name)

  return 123

@persetter

def per(self, var):

     print('456')

     return var

@perdeleter

def per(self):

  print('890')

 

调用方法:

obj = A()

obj.per

x = obj.per 

print(x)

del obj.per

#################################################

Class Pergination:

   __init__(self, page):

      self.page  = page

 @property

def start_page(self):

   return (self.page-1)*10

@property

def end_page(self):

  return (self.page)*10

li = []
for i in range(1000):
    li.append(i)

while True:
    p = input('请输入要查看的页码:') # 1,每页显示10条
    obj = Pergination(p)
    print(li[obj.start:obj.end])

###################################

class Foo:

    def f1(self):
        return 123

    def f2(self,v):
        print(v)
    def f3(self):
        print('del')

    per = property(fget=f1,fset=f2,fdel=f3,doc='adfasdfasdfasdf')

    # @property
    # def per(self):
    #     return 123


obj = Foo()
# ret = obj.per
# print(ret)

# obj.per = 123456

del obj.per

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值