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,绑定方法与非绑定方法,反射,内置函数)

python全栈学习--Day19(面向对象组合,继承)

Python-面向对象(组合封装与多态)

python 学习_第三模块 面向对象(中级)

python面向对象:组合封装property装饰器多态

Python之面向对象的组合多态菱形问题子类中重用父类的两种方式