首页 > 编程语言 > 详细

python学习面向对象组合

时间:2017-09-18 09:53:02      阅读:256      评论:0      收藏:0      [点我收藏+]

面向对象的命名空间
   类中的方法
   类中的静态属性
   对象的属性
类的组合应用


面向对象的命名空间:
class A:
     country=‘中国‘
a=A()
a.name=‘alex‘
print(a.name)      结果是alex  想要添加属性可以这么添加
b=A()
print(b.name)       结果是没有name的属性

对象中有地址簿来调用类的方法,表现内存不同,不过实际调用内存相同
对象和类调用动态属性表现的地址不一样,实际一样
静态属性完全一样地址
a.country=‘中国‘
print(a.country)    中国
print(A.country)    印度
print(b.country)    印度
对于关于类的静态属性:
    如果类.属性 调用的就是类中的属性
 对象.属性  先从自己的内存空间找名字,找到了用自己的,没找到就用类的,类里没有报错
 关于类的动态属性:
 这个方法本事就存在类中,并不会存在对象的内存中
 在对象调用类中的方法的时候,要依赖于一个地址簿,去类中寻找对应的方法
 关于对象的属性
 对象的属性就存在对象的命名空间中
 只能被对象调用、修改
 不能被类调用
 
 
 面向对象组合:
 可以做到解耦,可以用其他类的对象做属性

 

class Ban:
def __init__(self,name,ke,jiang):
self.name=name
self.ke=ke.name
self.jiang=jiang.name
class Student:
quanxian=‘xuesheng‘
def __init__(self,name,ban,ke,grade=100):
self.name=name
self.ban=ban.name
self.ke=ke.name
self.jiang = ban.jiang
self.grade=grade
class Jiang:
quanxian=‘jiaoshi‘
def __init__(self,name,sex,ke,bang):
self.name = name
self.sex = sex
self.ke = ke.name
self.bang=bang

python学习面向对象组合

原文:http://www.cnblogs.com/gaoshengyue/p/7541356.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!