python面向对象之:类成员 异常处理

时间:2019-08-19
本文章向大家介绍python面向对象之:类成员 异常处理,主要包括python面向对象之:类成员 异常处理使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

细分类的组成成员

静态变量(静态字段)
方法部分

class A:

    company_name = '老男孩教育'  # 静态变量(静态字段)
    __iphone = '1353333xxxx'  # 私有静态变量(私有静态字段)


    def __init__(self,name,age): #特殊方法

        self.name = name  #对象属性(普通字段)
        self.__age = age  # 私有对象属性(私有普通字段)

    def func1(self):  # 普通方法
        pass

    def __func(self): #私有方法
        print(666)


    @classmethod  # 类方法
    def class_func(cls):
        """ 定义类方法,至少有一个cls参数 """
        print('类方法')

    @staticmethod  #静态方法
    def static_func():
        """ 定义静态方法 ,无默认参数"""
        print('静态方法')

    @property  # 属性
    def prop(self):
        pass

类的私有成员

# 类中的私有成员: 私有类的静态属性, 私有对象属性,私有方法
# 对于类的公有静态属性,类的外部,类的内部,派生类都可以访问.
# 私有静态属性: 类外部不能访问,类内部可以访问 ,派生类不可访问
# 对象的私有属性# 类的内部可以使用 ,类的外部不能访问 ,派生类中也不可访问

# 如果想设定一些私有的或者是不想让类外面用到,密码,加密方式,等设置成私有成员.
# 拓展: 私有成员除了在类内部,当真访问不到么?
# python中所有的私有成员: 就是在私有成员前面加上 _类名而已.
# print(A._A__girlnum)  # 千万不要这么去访问!!!

类方法与静态方法

# 类方法
# @classmethod  # 类方法: 由类名直接调用的方法,他会自动的将类名传给cls
# 对象也可以调用类方法,但是会自动将其从属于的类名传给cls
#  @classmethod静态方法: 不依赖于类,也不依赖于对象,他就是一个普通的函数放置于类中是结构更加清晰与合理.

属性

# 我们要让类方法伪装成属性,虽然在代码级别没有提升,但是看起来更合理.
# @property
# def aaa(self):
#     print('get的时候运行我啊')
# @aaa.setter
# def aaa(self,v):
#     print('修改的时候执行我')
# @aaa.deleter
# def aaa(self):
#     print('删除的时候执行我')

isinstance issubclass

# isinstance(obj,N): 判断 obj对象 是由N类(N的派生类)实例化的对象 返回 True.
# issubclass(M,N) 判断是M类是N类的子孙.

# type 到底是什么?
# type 元类 python中一切皆对象 , 一个类也是一个对象.
# 么这个(类)对象肯定是由类实例化出来的.
# python中你创建的所有类,以及大部分list str等等这些类,都是从type元类实例化得来的.
# python中继承object类都是新式类.
# object 也是由type元类实例化得来的.
# type

异常处理

# 什么叫异常?
# 你的程序出现中断,飘红,致使你的整个项目中断了.
# 语法错误.
# 语法错误就不应该现在你的代码中.
# 逻辑错误:

# 我们用 用if进行异常处理
# try
# 单分支

# 多分支
# 及时解决异常,避免程序中断.
# 程序的分流.
# 第四种 万能 + 多分支
# 异常处理其他成员
# finally: # 在整个程序终止之前,执行finally 用于文件操作关闭文件句柄
# 主动抛出异常: 为什么要有
# raise Exception('fdkslafjdslkf')
# 断言:
# assert 条件  # 源码上assert.
# assert 1 == 2
# print(11)
# print(22)
# print(33)
# 自定义异常(了解)
class Connection(BaseException):
    def __init__(self,msg):
        self.msg = msg
raise Connection('触发了连接异常')
# raise Connection('触发了连接异常')
# 异常处理总结:
    # 异常处理不能经常使用:异常处理耗费性能.有些错误是需要进行分流使用.代码的可读性变差.
    # 关键节点使用.
# 万能异常 Exception as e: 可以起别名
# 什么时候用万能异常,什么时候用多分支?
#如果你只是想把这个异常处理掉,让程序继续执行. 万能异常.
# 如果出现了异常,你是想根据不同的异常执行不同的逻辑流程,你要采取多分支.

原文地址:https://www.cnblogs.com/saoqiang/p/11377183.html