python(面向对象)

  • 本质:一种数据类型,不占用内存空间
  • 格式:
class class_name(object):
     def __init__(self):  # 重写init函数
          print('Hello')
if __name__="__main__":
      a=(class_name) # ()就相当于走了初始化__init__         

对象

  • 创建对象:
    不需要初始值:对象名=类名()
    需要初始值:对象名=类名(参数列表)
#打印进度条
class Num(object):
    def __init__(self):
        pass
    def jdt(self):
        for i in range(1,101):
            print('#'*(i),'%d %%'%i)
if __name__=="__main__":
    a=Num()
    a.jdt()        
#打印进度条 20个,下载进度是100%
import time
class Num(object):
    def __init__(self):
        self.count=1
    def jdt(self):
        for i in range(0,100):
            time.sleep(0.5)
            if i%5==0:
                res='#'*self.count
                print('%s %d%%'%(res,(i+1)))
                self.count+=1
                
if __name__=="__main__":
    a=Num()
    a.jdt() 

访问可见性问题

  • 私有变量:当可以直接访问对象的属性时, 可能会被输入不合法的数据, 私有变量可以阻止从外部直接访问对象
    格式:__变量名
    给私有变量设置值:set_变量名
    获取私有变量的值:get_变量名
class class_name:
    def __init__(self):
         self.__a=1000
    def A(self):
        print(self.__a)
        print(self.__B())
    def __B(self):
        print('Hello B')

if __name__=="__main__":
    name=class_name()
    name.A()
   #print(name.__a) 私有变量不可外部调用

@property装饰器

class Num(object):
    def __init__(self):
        self.__a=1000
    @property
    def a(self):
        return self.__a
if __name__=="__main__":
    name=Num()
    print(name.a)
  

继承

单继承

  • 子类在继承的时候,在定义类时,小括号()中为父类的名字
  • 父类的属性、方法,会被继承给子类
  • 私有的属性,不能通过对象直接访问,但是可以通过公有方法访问
  • 私有的方法,不能通过对象直接访问
  • 私有的属性、方法,不会被子类继承,也不能被访问
  • 一般情况下,私有的属性、方法都是都是不对外公布的,往往用来做内部的事情,起到安全的作用
class A(object):
    def __init__(self,a1):
        self.a=1000
        self.a1=a1
    def A1(self):
        print('A1')
class B(A):
    def __init__(self,a1):
        A.__init__(self,a1)
        pass
    def B1(self):
        print(self.a1)

if __name__=="__main__":
    b=B('Num')
    b.B1()     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值