python数据分析进阶1

异常与错误

python异常处理的模板是什么?

try:
    #可能发生异常的语句
except Ex1:
    #发生异常Ex1时要执行的语句
excpet (Ex2,Ex3):
    #发生异常E2或E3时要执行的语句
except:
    #发生其他异常时要执行的语句
else:
    #无异常时要执行的语句
finally:
    #不管是否发生异常,都要执行的语句
    #如文件、数据库、图形句柄资源的释放

断言

在数据分析、数据科学中,断言(Assertion)主要用于“设置检查点”

assert  expression  [.arguments]

expression:条件表达式

argument:断言内容

 

a = 1
b =0
assert b!=0,"分母不能为0"

输出: 

---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
<ipython-input-8-f4aa5d2b62fd> in <module>
      1 a = 1
      2 b =0
----> 3 assert b!=0,"分母不能为0"

AssertionError: 分母不能为0

面向对象编程

在类中如何定义特殊函数?

#初始化函数
__init__()

#析构函数
__del__()

#构造函数
__new__()

#类方法
@classmethod

#静态方法
@staticmethod

如何定义属性和方法的可见性?

  • private:命名以两个下划线开始
  • protected:命名以一个下划线开始

如何定义类之间的继承关系?

  • 对象名-类名(初始化值)   class Teacher(Person) #Teacher继承了Person类

如何方位类中的属性和方法?

  • 普通属性和方法:通过对象名
  • 静态方法和类方法:直接通过类名
  • 构造函数、析构函数、初始化函数:解释器自动调用

 

@property装饰器

将方法或者函数以属性的形式调用

class Student:
    __name = "Zhang"
    age = 17
    @property
    def get_name(self):
        print(self.__name)
st = Student()
st.get_name

 

cls与self的区别

1、self表示一个具体的实例本身。如果用了staticmethod,那么就可以无视这个self,将这个方法当成一个普通的函数使用。

2、cls表示这个类本身

new与init的区别和联系

当__new__()中的return语句执行之后才能执行__init__()

执行函数__new__()后生成的是“对象”;执行函数__init__()后生成的是“实例”

class Student:
    name = "wang"
    __age = 10
    
    def __new__(clf,name,age):
        print("new调用")
    
    def __init__(self,name,age):
        print("init调用")
        self.name = nage
        self.age = age
    
    def sayHi(self):
        print(self.name,self.age)

s1 = Student("xiao",25)
new调用
print(s1)
None
s1.sayHi()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-40-f96aac634073> in <module>
----> 1 s1.sayHi()

AttributeError: 'NoneType' object has no attribute 'sayHi'

修改

class Student:
    name = "wang"
    __age = 10
    
    def __new__(cls,*args,**kwargs):
        print("new调用")
        return object.__new__(cls)
    
    def __init__(self,name,age):
        print("init调用")
        self.name = name
        self.age = age
    
    def sayHi(self):
        print(self.name,self.age)

s1 = Student("xiao",25)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值