码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-09-03 00:19:09      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:lock   ...   var   没有   pac   整理   细节   att   2.7   

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

基础

属性
    实例变量
    类变量(默认共享)
    私有属性(__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 #会自动传值

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

标签:lock   ...   var   没有   pac   整理   细节   att   2.7   

原文地址:http://www.cnblogs.com/ugfly/p/7468331.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!