面向对象二次整理(基础,属性引用,方法引用.绑定方法)
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‘)
...例子太多,先不写了
类的用法:
- 实例化产生对象
ff = Student(‘ff‘,‘famale‘)
jm = Student(‘jm‘,‘male‘)
- 属性引用
数据属性
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 #会自动传值
以上是关于面向对象二次整理(基础,属性引用,方法引用.绑定方法)的主要内容,如果未能解决你的问题,请参考以下文章