一、字段

  1、字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同。

    a、普通字段属于对象(实例变量)

    b、静态字段属于类(类变量)

      

二、属性

  对于属性,有以下三个知识点:

    属性的基本使用

    属性的两种定义方式

  1、属性的基本使用

    a、类是不能访问实例变量的

    
 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # 作者:Presley
 4 # 邮箱:1209989516@qq.com
 5 # 时间:2018-08-05
 6 # 类的方法
 7 class Animal:
 8     def __init__(self,name):
 9         self.name = name
10         self.num = None
11     count = 10
12     hobbie = "wohaoshuai"
13
14     @classmethod #将下面方法变成只能通过类方式去调用而不能通过实例方式去调用。因此调用方法为:Animal.talk(). !!!!类方法,不能调用实例变量
15     def talk(self):
16         print("{0} is talking...".format(self.hobbie))#因为hobbie为类变量所以可以通过类方式或者实例方式,若括号中为self.name实例变量则只能通过Animal.talk()方式调用
17
18     @staticmethod #当加上静态方法后,此方法中就无法访问实例变量和类变量了,相当于把类当作工具箱,和类没有太大关系
19     def walk():
20         print("%s is walking...")
21
22     @property #属性,当加了property后habit就变成一个属性了就不再是一个方法了,调用时不用再加()
23     def habit(self): #习惯
24         print("%s habit is xxoo" %(self.name))
25
26     @property
27     def total_players(self):
28         return  self.num
29
30     @total_players.setter
31     def total_players(self,num):
32         self.num = num
33         print("total players:",self.num)
34
35     @total_players.deleter
36     def total_players(self):
37         print("total player got deleted.")
38         del self.num
39 #@classmethod
40 # Animal.hobbie
41 # Animal.talk()
42 # d = Animal("wohaoshuai")
43 # d.talk()
44
45
46 # @staticmethod
47 # d = Animal("wohaoshuai2")
48 # d.walk()
49
50 # @property
51 d = Animal("wohaoshuai3")
52 # d.habit
53
54 #@total_players.setter
55
56 print(d.total_players)
57 d.total_players = 2
58
59 #@total_players.deleter
60
61 del d.total_players
62 print(d.total_players)(报错,提示num不存在,因为已经被删除了)

转载于:https://www.cnblogs.com/Presley-lpc/p/9824690.html

Python 高级面向对象相关推荐

  1. 【廖雪峰python总结】python高级特性,函数式编程,面向对象编程,面向对象高级编程

    文章目录 python复习总结 python高级特性 函数式编程 面向对象编程 面向对象高级编程 python复习总结 python高级特性 python高级特性 函数式编程 函数式编程 函数式编程的 ...

  2. PYTHON高级全栈开发工程师-老男孩教育

    PYTHON高级全栈开发工程师 最近开班日期:2016年4月17号                               课程周期:4至4.5个月 学习方式:全脱产面授学习(周一至周五,早9:3 ...

  3. 已知x=python是一种非常好的编程语言-为什么用Python,高级的Python是一种高级编程语言...

    Python特性 如果有人问我Python最大的特点是什么,我会毫不犹豫地告诉他:它简单易学,功能强大.作为一个纯自由软件,Python有许多优点: 很简单.基于"优雅".&quo ...

  4. python 完全面向对象_史上最全的Python面向对象知识点疏理

    原标题:史上最全的Python面向对象知识点疏理 面向对象技术简介 类: 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例.class 类变量:类变 ...

  5. python高级语法装饰器_Python高级编程——装饰器Decorator超详细讲解上

    Python高级编程--装饰器Decorator超详细讲解(上篇) 送你小心心记得关注我哦!! 进入正文 全文摘要 装饰器decorator,是python语言的重要特性,我们平时都会遇到,无论是面向 ...

  6. Python面试题大全(二):python高级语法

    目录 Python高级 元类 42.Python中类方法.类实例方法.静态方法有何区别? 43.遍历一个object的所有属性,并print每一个属性名? 44.写一个类,并让它尽可能多的支持操作符? ...

  7. Python高级全栈开发实战 老男孩课程S16+路飞学城项目+女神串讲 Python全栈直通车课程

    python高级全栈开发实战 老男孩课程S16+路飞学城项目+女神串讲 Python全栈直通车课程 Python高级全栈开发实战老男孩课程,是可以帮助同学们从零基础开始到项目开发实战的全栈课程,内容非 ...

  8. python架构师培训课程_Python从零到架构师课程 六大阶段Python高级课程+项目实战 尚学堂全方位Python课程...

    Python从零到架构师课程  六大阶段Python高级课程+项目实战 尚学堂全方位Python课程 3.JPG (31.16 KB, 下载次数: 1) 2019-9-17 23:36 上传 2.JP ...

  9. Python 高级编程(第2版)

    内容简介 Python 作为一种高级程序设计语言,凭借其简洁.易读及可扩展性日渐成为程序设计领域备受推崇的语言之一. 本书基于 Python 3.5 版本进行讲解,深度揭示了 Python 编程的高级 ...

最新文章

  1. 放大器和比较器的区别
  2. 【Android 高性能音频】AAudio 音频流 数据回调细节 ( 数据回调函数优先级 | 数据回调函数 | 采样率 | 采样数 | 缓冲区调整 | 线程不安全 )
  3. JavaScript 中的事件设计
  4. flask-sqlalchemy mysql_Flask SQLAlchemy连接到MySQL数据库
  5. html点击事件传参 php,HTML通过事件传递参数到js详解及实例
  6. 计算机教学与实际生活相结合,小学数学教学与实际生活相结合的方法思考
  7. 4 关卡流 进阶_赛博朋克2077:实用玩法攻略,技术流玩法攻略
  8. sql中exec是什么意思_SQL 中为什么经常要加NOLOCK?
  9. 【Monkey】Monkey基础概念
  10. 抛开百度、知乎等都找不到连接不上服务器远程桌面的原因
  11. Apache Spark Meetup China 第1期 最全资料下载
  12. 在某个文件夹中打开 cmd黑窗口
  13. 项目开发计划——机房收费系统
  14. list()与tolist()区别
  15. 如何终止运行matlab,matlab终止运行命令
  16. 怎么做好淘宝客推广?
  17. 家谱范例模板:一本完整的家谱,一定需要这几部分内容
  18. 人脸活体检测、红外人脸数据集下载
  19. 最新WordPress微信小程序社区论坛源码多端应用
  20. Andriod studio 学习 之打包

热门文章

  1. Android系统为例解读智能手机如何防盗
  2. 如何在MySQL随机选择记录
  3. XP下安装SQL2000企业版
  4. 聊聊 Spring Boot 2.x 那些事儿
  5. Postgresql 8.2.15 安装文档
  6. java i++与++i与与之间的区别在哪里
  7. 【AD用户设置系列一】让IT省心省力的漫游配置文件
  8. Spring Mvc Controller返回值、参数绑定、参数校验 (高级二)
  9. RabbitMQ 拓展基础组件封装思路
  10. shell出错test_path: command not found