python学习面向对象组合
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习面向对象组合相关的知识,希望对你有一定的参考价值。
面向对象的命名空间
类中的方法
类中的静态属性
对象的属性
类的组合应用
面向对象的命名空间:
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学习面向对象组合的主要内容,如果未能解决你的问题,请参考以下文章
python学习8_1 面向对象(继承多态封装)以及零散概念(组合,property,绑定方法与非绑定方法,反射,内置函数)