python中的类与对象

python中的类与对象

抛出与捕获异常

案例一:try…except…

# 教育机构   舒寒科技有限公司
# 学习者     舒寒拽少
# 学习时间:  2022/1/16 14:54
print('====抛出和捕获异常======')
try:
    a=int (input('请输入一个整数'))
    b=int (input('请输入第二个整数'))
    result =a/b
    print('结果为:',result)
except ZeroDivisionError:
    print('对不起,除数不能为0')
print('程序结束')


运行结果:
====抛出和捕获异常======
请输入一个整数12
请输入第二个整数0
对不起,除数不能为0
程序结束

案例二

# 教育机构   舒寒科技有限公司
# 学习者     舒寒拽少
# 学习时间:  2022/1/16 14:54
print('====抛出和捕获异常======')
print('===使用try...except...else...finally====')
#如果发生异常则执行BaseException,
# 否则执行else,finally是无论是否有异常都会执行
try:
    a=int (input('请输入一个整数'))
    b=int (input('请输入第二个整数'))
    result =a/b
except BaseException as e:  #捕获所有异常是使用:BaseException
    print('出错了',e)
else:
    print('结果为:',result)
finally:
    print('程序结束')
运行结果:
====抛出和捕获异常======
===使用try...except...else...finally====
请输入一个整数32
请输入第二个整数12
结果为: 2.6666666666666665
程序结束


====抛出和捕获异常======
===使用try...except...else...finally====
请输入一个整数123
请输入第二个整数0
出错了 division by zero
程序结束

====抛出和捕获异常======
===使用try...except...else...finally====
请输入一个整数sffa
出错了 invalid literal for int() with base 10: 'sffa'
程序结束

类属性,类方法,静态方法

实例方法的调用有两种:1.对象.方法名 2.类.方法名(对象名)

# 教育机构   舒寒科技有限公司
# 学习者     舒寒拽少
# 学习时间:  2022/1/17 9:24
print('====类属性,类方法,静态方法=========')
class Student:  #Student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,其余小写
   native_pace='吉林' #直接写在类里的变量,称为属性 类里面方法外面
   def __init__(self,name,age):
       self.name=name
       self.age=age


   #实例方法
   def eat(self):
       print('学生在吃饭.....')

    #静态方法
   @staticmethod
   def method():
       print('我使用了staticmethod进行修饰,所以我是静态方法')

   #类方法
   @classmethod
   def cm(cls):
        print('我使用了classmethod进行修饰,所以我是类方法:')

#在类之外定义的称为函数,在类之内定义的称为方法
def drink():
    print('喝水')

#创建Student类的对象
stu1=Student('张三',20)
print(id(stu1))
print(type(stu1))
print(stu1)

print(stu1.native_pace)
stu1.eat()  #对象名.方法名
stu1.method()
stu1.cm()

print(Student.native_pace) #访问类属性
Student.eat(stu1) #类名.方法名(传入类的对象)实际上就是方法定义处的self
Student.cm() #调用类方法
Student.method() #调用静态方法

运行结果:
====类属性,类方法,静态方法=========
1839872310960
<class '__main__.Student'>
<__main__.Student object at 0x000001AC60EF7EB0>
吉林
学生在吃饭.....
我使用了staticmethod进行修饰,所以我是静态方法
我使用了classmethod进行修饰,所以我是类方法:
吉林
学生在吃饭.....
我使用了classmethod进行修饰,所以我是类方法:
我使用了staticmethod进行修饰,所以我是静态方法

动态绑定

# 教育机构   舒寒科技有限公司
# 学习者     舒寒拽少
# 学习时间:  2022/1/17 19:31
class Student:
    def __init__(self,name,age):
        #使用def __init__定义的适合所有的对象使用
        self.name=name
        self.age=age
    def eat(self):
        print(self.name+'在吃饭')

stu1 = Student('张三',20) #创建两个学生类
stu2 = Student('李四',30)#Student类的实例对象
print(id(stu1))
print(id(stu2))
print('-----为stu2动态绑定性别属性-------')
stu1.gender='女'  #只适用于stu1
print(stu1.name,stu1.age,stu1.gender)
# print(stu2.name,stu2.age,stu2.gender)会报错,因为stu2没有gender

def show():
    print('定义在类之外的,称为函数')
stu1.show=show
stu1.show()
# stu2.show() 报错

运行结果:
1937025564624
1937025564288
-----为stu2动态绑定性别属性-------
张三 20 女
定义在类之外的,称为函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值