python php区别-Python3 面向对象 且与 PHP 区别
只记录区别,一致的地方不记录
【类对象】
1、属性和方法的引用:
python不管是类引用还是实例引用,都是标准语法: obj.name 或 obj.method();
php 类的静态属性(或常量)引用:class::name ,类的静态方法引用:class::method();
实例属性引用 $obj->name,实例的方法引用:$obj->method();
2、构造方法
python 的构造方法名是 __init__(self)
def __init__(self):
self.data = []
注意:类方法里面的第一个参数只能是实例对象,但不限定变量名。所以 self 是指类的实例,self 只是个变量,可以使用 this 等自定义的变量。
php 的构造方法是 __construct() ,且可以不传入任何参数
3、析构方法
python 的析构方法是 __del__(self)
php 的析构方法是 __destruct()
4、类的静态变量引用
python 无静态变量,如果要外部引用直接 class.attr 引用;
内部引用,需要 self.attr 引用。
php 有静态变量和常量,内部引用:static::attr 或 self::attr
实例属性外部引用:$obj->attr;内部引用:$this->attr
【类方法】
1、类方法定义
python 使用 def 关键词定义,与定义函数一样。
php 使用 function 关键词定义。
2、定义方法必须传入类实例作为第一个参数
python 类方法必须包含“类实例”参数 self(self 可以自己定义其他名字)
php 无此规则,且方法内使用 $this 调用类实例。
【继承】
1、继承方式
python 继承: class child(base),使用圆括号方式
php 继承:class child extend base 使用关键词:extend
2、多继承
python 支持多继承,且根据圆括号里面父类的顺序查找父类里面的方法:class child(base, base2, base3)
php 不支持多继承
【方法重写】
1、引入父类方法区别
python 使用 super() 类获得父类对象:super(Child, c).method();
php 直接使用 parent::method() 即可;
【类属性/方法权限】
1、类属性的私有声明
python 使用两个下划线开头(__)声明该属性是私有的。内部使用 self.__private_attr 访问;
php 使用 private $attr 声明私有属性。
2、类方法的私有化声明
python 两个下划线开头定义方法名声明私有方法:def __private_method(self);
php 使用 private menthod() 声明私有方法;
3、proteced 权限
python 无此权限
php 通过 protected 声明;
【类的专有方法】
python 有以下专用类方法:
__init__ : 构造函数,在生成对象时调用
__del__ : 析构函数,释放对象时使用
__repr__ : 打印,转换
__setitem__ : 按照索引赋值
__getitem__: 按照索引获取值
__len__: 获得长度
__cmp__: 比较运算
__call__: 函数调用
__add__: 加运算
__sub__: 减运算
__mul__: 乘运算
__truediv__: 除运算
__mod__: 求余运算
__pow__: 乘方
php 有以下专用类方法,也称为魔术方法:
•__construct(),类的构造函数
•__destruct(),类的析构函数
•__call(),在对象中调用一个不可访问方法时调用
•__callStatic(),用静态方式中调用一个不可访问方法时调用
•__get(),获得一个类的成员变量时调用
•__set(),设置一个类的成员变量时调用
•__isset(),当对不可访问属性调用isset()或empty()时调用
•__unset(),当对不可访问属性调用unset()时被调用。
•__sleep(),执行serialize()时,先会调用这个函数
•__wakeup(),执行unserialize()时,先会调用这个函数
•__toString(),类被当成字符串时的回应方法
•__invoke(),调用函数的方式调用一个对象时的回应方法
•__set_state(),调用var_export()导出类时,此静态方法会被调用。
•__clone(),当对象复制完成时调用
•__autoload(),尝试加载未定义的类
•__debugInfo(),打印所需调试信息
python php区别-Python3 面向对象 且与 PHP 区别相关推荐
- python菜鸟基础教程-Python3 面向对象
Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触 ...
- python 菜鸟-Python3 面向对象
Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触 ...
- python面向对象和面向过程的区别_Python11-01_面向对象----面向对象和面向过程的区别...
面向对象编程 面向对象(OPP)编程思想主要针对大型软件设计而来的.面向对象编程使程序的扩展性更加强,可读性更好.使得编程可以像搭积木一样简单. 面向对象编程将数据和操作数据的方法封装到对象中,组织代 ...
- python输入和输出的区别_python2和python3的输入和输出区别介绍
Python3 输入和输出 输出格式美化 Python两种输出值的方式: 表达式语句和 print() 函数. 第三种方式是使用文件对象的 write() 方法,标准输出文件可以用 sys.stdou ...
- python之路_面向对象
1 >>> dict #类型dict就是类dict 2 <class 'dict'> 3 >>> d=dict(name='egon') #实例化 4 ...
- Python3 面向对象编程
好记性不如烂笔头,对之前阅读书籍进行梳理与总结,此文为<Python3面向对象编程>阅读笔记. 文章目录 第一章 面向对象设计 第二章 Python对象 第三章 对象相似时 第四章 异常捕 ...
- 轻松玩转AI(从Python开始之Python3入门)
轻松玩转AI路径: 从Python开始 [链接] 数据科学 [链接] 机器学习 [链接] 深度学习--神经网络 [链接] 从Python开始: Python3入门 [链接] Python3进阶 [链接 ...
- python3面向对象学习
python3面向对象学习 面向对象 面向对象技术简介 类定义 类对象 self代表类的实例,而非类 类的方法 继承 多继承 方法重写 类属性与方法 类的私有属性 类的方法 类的私有方法 运算符重载 ...
- python3.7和3.8的区别-Python2.7和3.7区别
区别一:print语法使用 Python2.7 print语法使用 >>> print "Hello Python" Python3.7 print语法使用 &g ...
最新文章
- linux记录用户命令的日志是,用日志记录Linux用户执行的每一条命令
- 插入透明32位png格式图片支持ie5.5+、 FF、chrome、safari
- vue+xterm.js 实现Linux command界面
- 华为mate40pro是鸿蒙系统么,预装鸿蒙OS系统,华为Mate40Pro鸿蒙版即将发布,略有遗憾...
- 前端很慌!React 称霸,Vue 凶猛,TypeScript 威逼 JavaScript
- [排错] Status error 2850
- oracle plsql破解
- 软考—软件设计师(中级)第5版
- linux格式化磁盘fdisk,linux下使用fdisk工具为磁盘分区格式化
- LeetCode精选TOP面试题(中等篇)【出现率降序】
- STM32机器人控制开发教程No.3 使用遥控控制电机/舵机(基于HAL库)
- 【蓝桥杯】Python字符串处理和应用
- 二代测序技术之illumina测序技术原理简介
- Latex表示随机变量相互独立,不独立
- 2022.05面试总结
- 制作自己的openwrt刷机包_手机刷机包如何制作?自己如何制作刷机包?
- Ajax 技术汇总(转载)
- ensp 配置DHCP
- Unity小技巧 - 绘制瞄准准心
- 新浪微博头条自动外推发帖引蜘蛛工具
热门文章
- VS2012+LUA环境搭建
- Educational Codeforces Round 50 (Rated for Div. 2)的A、B、C三题AC代码
- PHP中全局变量$_POST[]和$_GET[]
- jmeter响应数据Unicode编码转换为汉字
- thymeleaf模板的使用(转)
- 安装autoit libary失败问题解决
- java线程池【转】
- 2016.3.2(String 类)
- Rhythmk 一步一步学 JAVA(11)Ibatis 环境配置
- jQuery队列控制方法详解queue()/dequeue()/clearQueue()