面向对象二次整理(基础,属性引用,方法引用.绑定方法)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象二次整理(基础,属性引用,方法引用.绑定方法)相关的知识,希望对你有一定的参考价值。

概念之类的去百度一下...

基础

属性
    实例变量
    类变量(默认共享)
    私有属性(__var)
方法
    构造方法
    析构方法或析构函数
    私有方法

对象: 实例化一个类之后得到的对象

封装

把一些功能的实现细节不对外暴露

类的初始化(__init__): 就是给对象定义一些自己的特征,不能有返回值

继承

代码的重用
单继承
多继承
    2.7的经典类-->深度优先,新式类-->广度优先
    3.x 均是广度优先
    class Foo()

多态

接口重用,一种接口,多种实现

高级属性:

静态方法
    与类无关,不能访问类里的任何属性和方法

类方法
    只能访问类变量

属性@property
    把一个方法变成一个静态属性

反射
    getattr(obj,str)
    setattr(obj,str,val)
    hasattr(obj,str)

属性引用

ff对象
特征:
    name = ‘ff‘
    sex = famale
    school = ‘qh‘
    

技能:
    def talk(self):
        print(‘很炫‘)
    def run(self):
        print(‘is running‘)
        
jm对象
特征:
    name = ‘jm‘
    sex = male
    school = ‘qh‘

技能:
    def talk(self):
        print(‘is talking‘)
    def run(self):
        print(‘is running‘)
        


总结类(学 python 的人)
class study_person:
共同的特征
    school = ‘qh‘
共同的技能
    def talk(self):
        print(‘is talking‘)
    def run(self):
        print(‘is running‘)
    
class Sutdent:
    school = ‘qh‘  #数据属性 也就是类的变量,类下面的方法的共同的属性
    def __init__(self,name,sex):  #函数属性
    self.name = name
    self.sex = sex
    
def talk(self):
    print(‘is talking‘)
def walk(self):
    print(‘is running‘)

ff = Study_person(‘ff‘,‘famale‘)
mm = Study_person(‘mm‘,‘male‘)

...例子太多,先不写了
    

类的用法:

  1. 实例化产生对象

ff = Student(‘ff‘,‘famale‘)

jm = Student(‘jm‘,‘male‘)

  1. 属性引用

数据属性

print(类名.__dict__) 

print(Student.school)

#属性修改

Student.school = ‘bd‘

#增

Student.xx = ‘666‘

#删

del Student.xx

函数属性

print(Student.talk)

print(Student.walk)

对象的用法

对象本身并没有函数属性,只存放了对象自己特有的特征,它的特征在类里 (school)

class Sutdent:
    school = ‘qh‘  #数据属性
    def __init__(self,name,sex):  #函数属性
    self.name = name
    self.sex = sex
    
def talk(self):
    print(‘is talking‘)
def walk(self):
    print(‘is running‘)

ff = Student(‘ff‘,‘famale‘)
jm = Student(‘jm‘,‘male‘)

print(ff.name)

print(ff.sex)

print(ff.school,id(ff.school))

print(jm.school,id(jm.school))

print(Student.school,id(Student.school))

如果school在类的外部, 则无法访问.

产生一个类会有一个类的__dict__,产生一个对象会有一个对象的__dict___(实例化一个类后得到的对象),共有特征去类里找.

绑定方法 #特性: 自动传值

ff.walk() #ff.walk(ff) #Student.walk(ff) 把调用者当做第一个参数传给walk #会自动传值

以上是关于面向对象二次整理(基础,属性引用,方法引用.绑定方法)的主要内容,如果未能解决你的问题,请参考以下文章

Python学习——02-Python基础——8-面向对象的程序设计——封装绑定方法与非绑定方

面向对象知识点回顾整理

02-JAVA基础及面向对象(补充)

C++ 基础知识整理

JAVA基础面向对象分析

第二次JAVA作业