zoukankan      html  css  js  c++  java
  • 面向对象方法与调用

    从类名的角度使用类

    类名调用类中的属性和方法

    注意 类名调用了方法必须穿参 不然报错 类名可以对类中的属性 方法增删改查

    class A:
        hoppy='玩'#静态属性
        def __init__(self,name):#双下方法
            self.name=name#属性
        def func(self):#方法
            print(666)
    # 1. 查看类中的所有的内容.  类名.__dict__只用于获取类中的全部.
    # print(A.__dict__)
    # print(A.__dict__['hoppy'])
    
    
    # 2. 万能的 .点.
    print(A.hoppy)  # 查
    A.func(1)
    A.cloth = '校服'  # 增
    # print(A.__dict__)
    A.examination = '不考试!'  # 改
    # del A.hoppy  # 删
    del A.func  # 删
    # print(A.__dict__)
    

    实例化对象的过程

    1. 利用父类__new__ 在内存中创建一个对象空间.
    2. 自动执行__init__方法,并且将对象空间传给self参数.
    3. 执行__init__方法里面的代码,给对象空间封装其属性.
    

    从对象的角度使用类

    对象调用对象的属性和方法

    对象可以操作对象空间的属性 万能的点 进行增删改查

    class Student:
        daily = '学习'
        examination = '考试'
        def __init__(self,n,a,h):
            self.name = n
            self.age = a
            self.hobby = h
    
        def work(self,c):
            self.color = c
            print(f'{self.name}每天要上课')
    
        def homework(self):
            print('家庭作业')
    
    mc_sq = Student('骚强',18,'高端会所')  # 类名() 过程就叫做实例化过程,实例化一个对象
    mc_sq.age = '29'  # 增
    del mc_sq.n  # 删
    mc_sq.sex = '女'# 改
    print(mc_sq.n)  # 查
    print(mc_sq.__dict__)
    
    # 对象查看类中的属性.
    # mc_sq = Student('骚强',18,'高端会所')
    # # print(mc_sq.daily)
    # mc_sq.daily = '骚麦'
    # print(mc_sq.daily)
    # print(mc_sq.__dict__)
    # 对象调用类中的方法
    mc_sq.homework()
    

    对象查看类中的属性.但是不可以修改

    面向对象中的self是什么

    什么是self?
    # self 就是类中方法的第一个位置参数,
    #  如果通过对象执行此方法,解释器就自动的将此对象空间当做实参传给self.
    # 约定俗称: 类中的方法第一个参数一般都设置成self.
    
    # 一个类可以实例化多个对象
    无数个
    

    从空间角度研究类

    1.类外面可以给对象封装属性
    2.类内部封装属性
    3.对象如果修改 父类属性 其实就是给自己空间增加这个属性
    

    引用方式的路径

    对象如果查询一个属性: 对象空间  ----> 类空间 ----> 父类空间  --->
    类查询一个属性: 类空间  ----> 父类空间  ---->
    
    单向不可逆
    对象与对象之间原则上互相独立(除去组合这种特殊的关系之外).
    
  • 相关阅读:
    c++11 static_assert
    UVA
    析构函数与运行错误
    UVA
    2017 ACM-ICPC 亚洲区(乌鲁木齐赛区) C. Coconut
    2017 ACM-ICPC 亚洲区(乌鲁木齐赛区) A. Banana
    DOCTYPE的作用?
    数组去重的方法
    闭包的分析?
    SVN(集中式管理)分析
  • 原文地址:https://www.cnblogs.com/saoqiang/p/12386551.html
Copyright © 2011-2022 走看看