zoukankan      html  css  js  c++  java
  • 类与对象的属性与使用方法

    今日内容:--23
    1.类与对象的所有概念:__init__方法
    2.类的方法与对象的方法
    3.封装:隐藏细节 - 抽离代码
    4.getter | setter 接口
    5.父类与子类
    6.多继承

    # 重点:
    # 1.类的属性如何定义,类的方法如何定义


    # 2.对象的属性如何定义,对象的方法如何定义
    # 3.什么时候定义类方法与对象方法

    # 总结:对象调用类的方法
    class A:
    def test(self):
    print(self)
    pass
    t=A()
    t.test()
    A.test(t)
    A.__dict__["test"](t)

      

    <__main__.A object at 0x00000182832E9B70>
    <__main__.A object at 0x00000182832E9B70>
    <__main__.A object at 0x00000182832E9B70>
    # 类自己的方法
    

      

        def add(cls,n1,n2):
            cls.fn()
            return n1+n2
        def fn():
            pass
        def a(self):
            self.b()
        def b(self):
            pass
    res=Tool.add(Tool,10,90)
    print(res)
    》》》100
    

      

    class Tool:
        def add(cls,n1,n2):
            return n1+n2
    
    tool=Tool()
    print(tool.add(10,90))
    

      

    """
    class Tool:
        @classmethod
        def add(cls,n1,n2):
    
            # cls.test()
            return n1+n2
        # @classmethod
        # def test(cls):
        #     pass
    print(Tool.add(10,70))
    tool = Tool()
    print(tool.add(100,90))
    

     

    # 类方法:可以被类与对象调用的方法,第一个参数一定是类
    # 类方法不建议拿对象来调用
    类的方法与总结
    class OldBoy:
        #属于类的属性
        name="老男孩"
        # 属于对象的属性
        def __init__(self,name):
            self.name=name
        # 属于累的方法
        # 需求:获取机构的名字
        @classmethod
        def get_calss_name(cls):
            return cls.name
    
        # 属于累的方法
        # 需求:获取校区的名字
    
        def get_school_name(cls):
            return cls.name
    

      

           return cls.name
    # 类的方法使用
    # 建议使用累的调用
    print(OldBoy.get_calss_name())
    老男孩

      

    # 对象的适应方法
    # 先创建校区
    shanghai=OldBoy("上海校区")
    shenzhgn=OldBoy("深圳校区")
    print(shanghai.get_school_name() )
    print(shenzhgn.get_school_name() )
    上海校区
    深圳校区

      

     

      


    # 4.封装的语法与原理

    # 将类中的一些功能与属性,进行隐藏,不让外界直接访问(间接访问)
    
    # 封装:对外隐藏类中一些属性与方法的实现细节
    # 优点:外界不能直接访问,让内部的属性与方法具有安全保障
    

      

    class A:
        x = 10
        y = 20
        def f1(self):
            print('f1 run')
    
        def f2(self):
            print('f2 run')
    
        # 找到保险箱
        def get_box(self):
            print('找到保险箱')
            self.get_money()
    
        # 保险箱取钱操作
        def get_money(self):
            print('输入密码,取出100w零花钱')
    10
    20
    f1 run
    f2 run
    找到保险箱
    输入密码,取出100w零花钱
    封装的原理:把用__开头的名字更名为 _类名__变量名,所以直接通过 变量名 | __变量名就访问不到


    # 5.封装的目的:


    # 对象的属性:封装目的
    # 1.对象的属性值一般都来源于外界,外界是有权力再次访问的
    # 2.封装的目的不是让外界无法访问,而且不让其直接访问,可以在完成安全处理后再访问
    # 3.如何做到外界还是通过变量名来对属性进行取值赋值,但是是走的方法间接拿到的值

    优点:外界不能直接访问,让内部的属性与方法具有安全保障


    # 6.对象属性的封装对外提供操作接口的手段

     #       -- __money被封装,外界还是可以通过 对象.money 取值赋值
    def __init__(self, money) self.__money = money # 取值 @property # 在外界可以 对象.money 进行取值 def money(self): # print('走方法拿到的money') return self.__money # 赋值 @money.setter # 在外界可以 对象.money = 新值 进行赋值 def money(self, money): self.__money = money # 删除 @money.deleter def money(self): del self.__money

      

  • 相关阅读:
    【福利】idea最新激活码,绝对可用
    最好用的录屏工具Bandicam (班迪录屏)
    markdown改变字体、颜色和大小
    idea 2020最新破解教程(可激活至2089年)
    解决电脑桌面图标变白消失
    常见排序
    算法
    uWSGI、WSGI和uwsgi
    RabbitMQ
    flask请求和应用上下文
  • 原文地址:https://www.cnblogs.com/mofujin/p/10732624.html
Copyright © 2011-2022 走看看