面向对象2(中级)

类成员:
# 字段
- 普通字段,保存在对象中,执行只能通过对象访问
- 静态字段,保存在类中, 执行 可以通过对象访问 也可以通过类访问

# 方法
    - 普通方法,保存在类中,由对象来调用,self=》对象
    - 静态方法,保存在类中,由类直接调用
    -   类方法,保存在类中,由类直接调用,cls=》当前类

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

静态字段

class Province:
    # 像这样直接写在类里的字段叫:静态字段,它属于类。一般在多个对象共用一个字段时使用,节省内存。
    country =  '中国'
    
    #  普通方法
    def __init__(self, name):
        # 普通字段,属于对象.普通字段只有在创建对象时才建立。
        self.name = name
        
henan = Province('河南')
print(Province.country)

静态方法:

class abc:
    @staticmethod   # 只在普通方法上面加这个装饰器,就会变成静态方法
    def add(x,y):   # 静态方法 self 就不是必须的了,可以不写。
        print(x+y)
abc.add(2,4)    # 调用静态方法,可以直接用  类名.方法名  的方式调用。

在这里插入图片描述
类方法:

class abc:
    @classmethod  # 装饰器加上之后变成类方法
    def add(cls):  # cls 是当前类名,潜规则写成 cls
        print("这是一个类方法")

abc.add()  # 调用同样是  类名 . 方法名()

模拟分页:

class page_fenye:
    def __init__(self, s_page):
        self.page = int(s_page)

    @property    # 加上这条装饰器,可以使下面的方法在调用时不用加()。
    # 还有这样一种写法:per=property(fget=statrpage)
    def statrpage(self):
        val = (self.page - 1) * 10  # 选择指定数的前10个内容
        return val
    @property
    def endpage(self):
        val = self.page * 10
        return val


li_list = []
for i in range(1000):
    li_list.append(i)
p = input("请输入页:")
obj = page_fenye(p)

print(li_list[obj.statrpage:obj.endpage])  # 因为上面加了装饰器,所以obj.endpage()不用加()。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值