Python-面向对象

面向对象(OOP):基本单元:对象 封装数据与功能

具有良好复用性、灵活性、扩展性
两个基本概念:类、对象    
基本要素:属性(信息)、方法 
特性:继承(单,多)、多态、封装性
同一类人对同一个问题有不同的看法,这个就是多态

class ClassName:
构造函数:def __init__(self,...)    #魔术方法格式def__方法名__(self)
析构函数:(销毁)def __del__(self,...)  (python垃圾回收)
老式类,新式类:Class OldStyle  、   Class  NewStyle(object) 

内建函数:dir()返回对象的属性 、 type()获取对象的类型

常用属性定义:1.没有下划线--->公有成员变量
              2.有一个下划线--->不严格的私有成员变量:实际还是可以访问
              3.有两个下划线--->较严格的私有成员变量,实际需要变法访问
PS:python实际没有属性控制一说法。
记住方法:没有不严格,只有 1级严格  2级严格
a     ==   public 
_ a   ==   protect
__a  ==    private
 
@classmethod 可用类名直接调用,也可以用对象名调用
@property 只能用对象名调用,后不用跟()
带有@property装饰器的方法,在调用的时候,就像是调用属性一样,是对象.方法名(后面不跟括号);通常的方法的调用,需要是对象.方法名()

类的继承
1.定义类的继承
class DerivedClass(BaseClassName):
    pass
2.继承的子类
会继承父类的属性和方法
也可以自己定义,覆盖父类的属性和方法
3.用super()调用父类的方法
class A(object):
    def method(self,arg):
        pass
class B(A):
    def method(self,arg):
        super(B,self).method(arg)  
                super(子类名, self).父类方法名()

多态:
子类重写父类 A()方法,实例化父类对象调用 A()时调用的是父类的 A()方法,用子类的实例化对象调用 A()方法时调用的是子类的 A()方法

类和运算符
1.利用魔术方法可以使运算符被Python的标准语法支持
2.比较运算符
__cmp__(self,other)    比较
__eq__(self,other)    处理等于
__lt__(self,other)    小于
__gt__(self,other)     大于
3.数字运算符
__add__(self,other)      加
__sub__(self,other)      减
__mul__(self,other)      乘
__div__(self,other)      除
4.逻辑运算符
__or__(self,other)       或
__and__(self,other)      和
 
 
 
if __name__ == '__main__'是什么意思?
答:python中,当打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介绍一下它的作用,模块是对象,并且所有的模块都有一个内置属性 __name__。一个模块的 __name__ 的值取决于如何应用模块。如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名。但是也可以像一个标准的程序那样直接运行模块,在这 种情况下, __name__ 的值将是一个特别缺省"__main__"。
    一个.py文件,如果是自身在运行,那么他的__name__值就是"__main__";
如果它是被别的程序导入的(作为一个模块),比如:
import re
那么,他的__name__就不是"__main__"了。
所以,在.py文件中使用这个条件语句,可以使这个条件语句块中的命令只在它独立运行时才执行











Python-面向对象



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值