1面向对象结构分析:
----面向对象整体大致分为两块区域:
-------第一部分:静态字段(静态变量)部分
-------第二部分:方法部分
--每个区块可以分为多个小部分
class A:
country = "美国" # 静态变量(静态字段)
__cooage = 20 #私有静态变量(私有静态字段)
def __init__(self,name,age): #普通方法(构造方法)
self.name = name #对象属性(普通字段)
self.__age = age #私有对象属性(私有普通属性)
def func1(self): # 普通方法
pass
def __func(self): #私有方法
pass
@property
def age(self): #属性
pass
@classmethod #类方法
def class_func(cls):
# 定义类方法,至少有一个cls参数
pass
@staticmethod # 静态方法
def stact_func():
#定义静态方法,无默认参数
psaa
2面向对象的私有于公有
对于每一个类的成员而言都有两种形式:
-----共有成员,在任何地方都可以访问
-----私有成员,只有在自己类的内部才可以访问 ------私有成员和共有成员的访问限制不同: 静态字段(静态变量)
--共有静态字段:类可以访问,类内部可以访问,派生类不能访问
---私有静态字段:仅类的内部可以访问 普通字段(对象属性)
---共有普通字段:对象可以访问,类内部可以访问,派生类可以访问
---私有普通字段:仅类的内部可以访问 方法:
---共有方法:对象可以访问,类内部可以访问,派生类可以访问
--私有方法:仅类的内部可以访问 总结:
对于这些私有成员来说,它们只能在本类的内部使用,不能再本类的外部以及派生类中使用.
ps:如果要在外部访问,可以通过_类__属性 访问
为什么可以通过._类__私有成员名?因为类在创建时
如果遇到私有成员(私有静态字段和私有方法)时
它会将其保存在内存时自动在前面加上_类名 3.面向对象的成员
1)字段
字段包括:普通字段和静态字段,它们在定义和使用中有所区别,
最本质的区别就是内存中保存的位置不同.
普通字段属于实例化对象,
静态字段属于类 静态字段在内存中只保存一份
普通字段在每个对象中都要保存一份
应用场景:通过类创建对象时,如果每个对象都具有相同的字段,那么就是要静态字段
2)方法
方法包括:普通方法,静态方法和类方法,三种方法在内存在内存中都归属于类,区别在于调用方式不一同.
--普通方法:由对象调用:至少一个self参数;执行普通方法时,自动将调用改方法的对象赋值给self
--类方法:由类调用;至少一个cls参数;执行类方法时,自动将调用改方法的类复制给cls
--静态方法:有类调用;无默认参数 相同点:对于所有的方法而言,均属于类(非对象)中,所以在内存中也只保存一份>
不同点:方法调用者不同,调用方法时自动传入的参数不同 classmethod
----类方法:通过类名调用方法,类方法中第一个参数约定俗称cls,python自动将类传给cls
静态方法
对类中的静态变量进行改变,要用类方法
继承中,父类得到子类类的类空间
 class A:
age =12
def func(self): #普通方法
print(self)
@classmethod
def func1(cls): # 类方法,自动添加cls 次方法无需对象参与
print(333)
cls.age = 30
print(cls.age) #对B类中的内容进行修改
class B(A):
age = 15
B.func1() # <class '__main__.B'>
print(B.func1())
print(B.__dict__) # 30 {'__module__': '__main__', 'age': 30, '__doc__': None} 对B类中的内容进行修改
不通过类方法,想让我的父类的某个方法得到子类的类空间里面的任意值
class A:
age = 18
def func2(self):
print(self) # self子类的对象,能得到子类空间的任何值
class B(A):
age = 22
b1 = B()
b1.func2()
print(b1.func2())
print(b1.__dict__)
@staticmethod

#  静态方法:
class A:
@staticmethod
def login(username,password):
if username == "alex" and password == 123:
print("登录成功")
else:
print("登录失败")
a = A()
a.login("alex",123) #登录成功 # 代码块,清晰
# 复用性.

python面向对象与结构成员之间的关系的更多相关文章

  1. python 面向对象类与类之间的关系

    主要内容: 1. 依赖关系 2. 关联关系, 组合关系, 聚合关系 3. 继承关系 4. 类中的特殊成员 引子 大千世界, 万物之间皆有规则和规律,我们的类和对象是对大千世界中的所有事物进行归类. 那 ...

  2. Python面向对象05 /私有成员、类方法、静态方法、属性、isinstance/issubclass

    Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/issubclass 目录 Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/is ...

  3. Python进阶----表与表之间的关系(一对一,一对多,多对多),增删改查操作

    Python进阶----表与表之间的关系(一对一,一对多,多对多),增删改查操作,单表查询,多表查询 一丶表与表之间的关系 背景: ​ ​ ​  ​ ​ 由于如果只使用一张表存储所有的数据,就会操作数 ...

  4. python与C结构体之间二进制数据转换

    python与C结构体之间数据转换 前言 在实际应用中,可能会遇到直接和C进行二进制字节流协议通信,这时要把数据解包成python数据,如果可能,最好与C定义的结构体完全对应上. python中有2种 ...

  5. .NET世界各成员之间的关系

    相信看到这篇文章的人,心中肯定有这样的想法:ODBC.OLEDB.ADO.ADO.NET貌似都是访问数据库的东东,那么他们之间有什么区别,又有什么联系呢?不要着急,待我慢慢道来. 先说ODBC,官方的 ...

  6. FFMPEG中最要害的结构体之间的关系

    FFMPEG中最关键的结构体之间的关系 http://www.myexception.cn/program/1404591.html FFMPEG中结构体很多.最关键的结构体可以分成以下几类: a)  ...

  7. python包管理工具他们之间的关系

    python包管理工具之间的关系 现在的python包管理工具有很多,非常混乱,必须理清他们之间的关系才能更好的使用python构建强大的包关系系统工具. 首先:python官方推荐的第三方库是PyP ...

  8. python --- 18 类与类之间的关系, 特殊成员

    类与类之间的关系 一.依赖关系 执行某个动作的时候. 需要xxx来帮助你完成这个操作      随时可以更换另外一个东西来完成此操作 此时的关系是最轻的. 二.关联关系(组合关系,聚合关系) 1.一对 ...

  9. python 面向对象和类成员和异常处理

    python 面向对象 你把自己想象成一个上帝,你要创造一个星球,首先你要把它揉成一个个球,两个直径就能创造一个球 class star: '''名字(name),赤道直径(equatorial di ...

随机推荐

  1. Java基础11一常用类

    1.包装类 byte---java.lang.Byte char---java.lang.Character short—java.lang.Short int---java.lang.Integer ...

  2. vuex的状态管理模式

    1.store.js Vuex 通过 store 选项,提供了一种机制将状态从根组件“注入”到每一个子组件中(需调用 Vue.use(Vuex)) state:存放数据. mutations:提交状态 ...

  3. SQL数据库链接代码的解释

    SqlConnection conn = new SqlConnection(); conn.ConnectionString = "Data Source=(local);Initial ...

  4. 杭电2060WA

    #include<stdio.h> int main() { int n,num,p,q,i,a[]={2,3,4,5,6,7}; scanf("%d",&n) ...

  5. Angular ui-router的常用配置参数详解

    一.$urlRouterProvider服务 $urlRouterProvidfer负责监听$location,当$location变化时,$urlRouterProvider将在规则列表中查找匹配的 ...

  6. 熟悉VS2017 和Github 第二次作业

    GIT地址 https://github.com/Astone1213 GIT用户名  Astone1213 学号后五位  62114 博客地址 https://www.cnblogs.com/AsL ...

  7. background及background-size

    background有以下几种属性: background-color background-position background-size background-repeat background ...

  8. IOS:兼容ios6和低版本

    viewDidUnload在ios6开始被弃用了,所以我们在这里处理内存警告的这类问题,这个时候我们就要把相应的处理放在 didReceiveMemoryWarning中. - (void)didRe ...

  9. 《代码敲不队》第八次团队作业:Alpha冲刺 第二天

    项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 代码敲不队 作业学习目标 掌握软件编码实现的工程要求. 团队项目github仓库地址链接 GitH ...

  10. windows FTP自动下载脚本

    新建ftp.dat文件,内容如下 open xxx.xxx.xxx.xxxusernamepasswordcd    lcd x:\filesbinaryhashmget *.*bye 新建run.b ...