python--22 类和对象
对象 = 属性 + 方法
self是什么东西 this指针
python的魔法方法
公有和私有
私有的实现 name mangling 名字改编,名字重整 伪私有
类对象
class Turtle: #Python 中的类名约定一大写字母开头""" 关于类的一个简单例子"""#属性color = 'green'weight = 10legs = 4shell = Truemouth = '大嘴'#方法def climb(self):print('我们正在很努力的向前爬.....')def run(self):print('我正在飞快的向前跑....')def bite(self):print('咬死你.....')def eat(self):print('有得吃,很满足....')def sleep(self):print('困了,睡觉,万安 Zzzz')tt = Turtle() #创建实例对象,赋值给tt print(tt.color) tt.climb()
运行结果:
[fengjunjie@localhost ~]$ python3 test.py
green
我们正在很努力的向前爬.....
OO = Object Oriented 面向对象
OO的特征
封装
>>> list1 = [2,1,7,1,9,10] >>> list1.sort() >>> list1 [1, 1, 2, 7, 9, 10] >>> list1.append(9)
继承
>>> class Mylist(list): ... pass ... >>> list2 =Mylist() >>> type(list2) <class '__main__.Mylist'> >>> list2.append(7) >>> list2.append(5) >>> list2.append(1) >>> list2.sort() >>> list2 [1, 5, 7]
多态 不同对象对同一方法的响应不同的行动
>>> class A: ... def fun(self): ... print('我是小A....') ... >>> class B: ... def fun(self): ... print('我是小B....') ... >>> a = A() >>> b = B() >>> a.fun() 我是小A.... >>> b.fun() 我是小B....
self是什么东西,self是指针
方法被调用的时候,对象会将自身作为第一个参数传给self参赛,接受到self的时候python就知道是哪一个对象在调用方法
>>> a = Ball() >>> a.setName('球A') >>> B = Ball() >>> B.setName('球B') >>> c = Ball() >>> c.setName('球C') >>> a.kick() 我叫球A,该死的,谁踢我... >>> B.kick() 我叫球B,该死的,谁踢我... >>> c.kick() 我叫球C,该死的,谁踢我...
Python的魔法方法
据说,Python的对象天生拥有一些神奇的方法,他们是面向对象的Python的一切......
他们是可以给你的类增加魔力的特殊方法......
如果你的对象实现了这些方法中的某一个,那么这个方法就会在特殊的情况下被Python所调用,而这一切都是自动发生的......
Python的魔法方法总是会被双下划线包围 __
1.__init__(selfm, param1, param2...) 构造方法 在创建对象的时候被自动调用
>>> class Ball: ... def __init__(self,name): ... self.name = name ... def kick(self): ... print('我叫%s,该死的,谁踢我...' % self.name) ... >>> b = Ball('土豆') >>> b.kick() 我叫土豆,该死的,谁踢我...
公有和私有
默认情况下对象的属性和方法都是公有的,可以通过.操作符来访问
>>> class Person: ... name = '小Fish' ... >>> p = Person() >>> p.name '小Fish'
私有的实现 name mangling 名字改编,名字重整 伪私有
在Python中定义私有变量只需要在变量名或函数名前加上'__'两个下划线,那么这个函数或变量就会为私有的了。 自动改成 _类名__变量名
>>> class Person: ... name = '小Fish' ... >>> p = Person() >>> p.name '小Fish' >>> class Person: ... __name = '小fish' ... def getName(self): ... return self.__name ... >>> p = Person() >>> p.name() Traceback (most recent call last):File "<stdin>", line 1, in <module> AttributeError: 'Person' object has no attribute 'name' >>> p.getName() '小fish'
>>> p._Person__name
'小fish'
转载于:https://www.cnblogs.com/fengjunjie-w/p/7506200.html
python--22 类和对象相关推荐
- Python基础(类与对象)
Python基础(类与对象) 一.编程的两大思想 面向过程和面向对象 面向过程 面向对象 区别 事物比较简单,可以用线性的思维去解决 事物比较复杂,使用简单的线性思维无法解决 共同点:面向对象和面向过 ...
- Python基础——类与对象
Python基础--类与对象 Python基础--类与对象 类与对象 数据类型 对象 类的创建 创建语法 类的创建 对象的创建 对象调用类中的内容 类属性,类方法,静态方法 类属性 访问类属性 类方法 ...
- Python的类和对象的介绍,定义类和对象,定义实例方法和属性以及Python中的魔法方法
Day09新手小白学python 第九节 Python的类和对象的介绍,定义类和对象,定义实例方法和属性以及Python中的魔法方法 目录 Day09新手小白学python 前言 一.面向对象介绍 二 ...
- python的类和对象——类的静态字段番外篇
什么是静态字段 在开始之前,先上图,解释一下什么是类的静态字段(我有的时候会叫它类的静态变量,总之说的都是它.后面大多数情况可能会简称为类变量.): 我们看上面的例子,这里的money就是静态字段,首 ...
- python类的构造方法名称_搞懂Python的类和对象名称空间
代码块的分类 python中分几种代码块类型,它们都有自己的作用域,或者说名称空间:文件或模块整体是一个代码块,名称空间为全局范围 函数代码块,名称空间为函数自身范围,是本地作用域,在全局范围的内层函 ...
- python:类与对象
目录 一.类与实例对象 1.声明类和实例化对象 2.对象的属性和初始化 3.实例方法 4.一切皆对象 5.类对象和类属性 6.静态方法和类方法 二.类的简单继承 1.继承的简单使用 2.重写父类方法和 ...
- python的类和对象_Python类与对象实验
一.任务描述 本实验任务主要对Python类与对象进行一些基本操作,通过完成本实验任务,要求学生熟练掌握Python类与对象的关系,并对Python类与对象的基本操作进行整理并填写工作任务报告. 二. ...
- Python的零基础超详细讲解(第十三天)-Python的类与对象
基础篇往期文章如下: Python的零基础超详细讲解(第一天)-Python简介以及下载 Python的零基础超详细讲解(第二天)-Python的基础语法1 Python的零基础超详细讲解(第三天)- ...
- Python进阶-----类、对象的相关知识
一.声明类 class 类名: #一般类名的首字母大写 '类的文档字符串' 类体 例如创建一个中国人的类: 1 class Chinese: 2 '这是一个中国人的类' #类的文档字符串 3 name ...
- python 类-如何理解python的类与对象?
挂一个自己的学习笔记 这个时间一长就搞错了,还经常回头来看一看,尤其是self的用法. python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也 ...
最新文章
- (剑指Offer)面试题54:表示数值的字符串
- 修改Docker容器字符编码为-zh_CN.UTF-8中文字符集
- CSP认证201604-1	折点计数[C++题解]:枚举、遍历
- 利用FS寄存器获取KERNEL32.DLL基址算法的证明
- oracle中check约束性别,关于Oracle Check类型约束的导入与启用
- c语言输出26个英文字母的能量值,菜鸟求助,写一个随机输出26个英文字母的程序...
- 新建网站与新建Asp.Net+Web+应用程序的区别
- 查看linux版本的三种常用方法
- 合肥.NET俱乐部第二期技术沙龙活动预告
- redis实例python_生产消费者模式与python+redis实例运用(基础篇)
- C++ string转字符串
- LAMP架构调优(六)——开启长链接
- 如果你想提高创新,那么本书就是答案
- 华为密盒M310最新固件-精简美化版
- Android跳转第三方App,淘宝,微信,QQ等。
- Apache监控与调优(七)MPM相关参数
- 我用这个小程序,副业赚钱轻松日入300+
- Comparable
- 双层pdf-不用手动添加目录超链接教程
- 一次项目开发中,收获的经验和教训