Python第十九天

封装的第二种方法:property()

class User(object):
def __init__(self, name, age, gender, tel):
self.__name = name
self.__age = age
self.__gender = gender
self.__tel = tel
def __str__(self):
return "name=" + self.__name
#如何让外部访问到私有的属性 getter setter
# 提供公开的get方法访问
def get_name(self):
return self.__name
# 提供公共的set方法修改
def set_name(self, username):
self.__name = username
def get_age(self):
return self.__age
def set_age(self, age):
self.__age = age
#获取值的时候调用property()的第一个参数
name = property(get_name, set_name)
age = property(get_age, set_age)
if __name__ == '__main__':
u = User("张三", 18, "男", "110")
print(u)
u.name = "lisi"
print(u)
# print(u.get_name())
# print(u.age)
# u.name = "lisi"
# print(u.name)
# u.set_name("lisi")
# print(u.get_name())

封装的第三种方式:装饰器 @property

class User(object):
def __init__(self, name, age, gender, tel):
self.__name = name
self.__age = age
self.__gender = gender
self.__tel = tel
def __str__(self):
return "name=" + self.__name
@property
def name(self):
return self.__name
@name.setter
def name(self, username):
self.__name = username
#如何让外部访问到私有的属性 getter setter
# 提供公开的get方法访问
# def get_name(self):
# return self.__name
# 提供公共的set方法修改
#def set_name(self, username):
# self.__name = username
def get_age(self):
return self.__age
def set_age(self, age):
self.__age = age
#获取值的时候调用property()的第一个参数
# name = property(get_name, set_name)
# age = property(get_age, set_age)
if __name__ == '__main__':
u = User("张三", 18, "男", "110")
print(u.name)
u.name = "lisi"
print(u)
# print(u.get_name())
# print(u.age)
# u.name = "lisi"
# print(u.name)
# u.set_name("lisi")
# print(u.get_name())

继承

class RichMan(object):
def __init__(self):
self.money = 100000000
self.company = "阿里巴巴"
def tell_moto(self):
print("我没有钱")
class Son(RichMan):
pass
if __name__ == '__main__':
s = Son()
print(s.money)
print(s.company)
print(s.tell_moto())

子类继承父类的时候并不能继承所有的属性和方法(私有)
重写(覆盖):子类继承父类的时候,可以重写方法
注意:重写的时候方法名、参数以及参数的个数必须保持一致

class RichMan(object):
def __init__(self):
self.money = 100000000
self.company = "阿里巴巴"
self.__house = "北京"
def tell_moto(self):
print("我没有钱")
def __speak(self):
print("讲英文贼溜")
def working(self):
print("A员工工作的认真")
class Son(RichMan):
def working(self):
print("B员工工作认真")
if __name__ == '__main__':
s = Son()
print(s.money)
print(s.company)
print(s.tell_moto())
print(s.working())

python里有没有重载,有没有重写
重载:方法名相同,参数以及参数的个数不同
python里面是没有重载,但是可以实现重载-----通过装饰器
python里面可以多继承
思考问题:A继承B和C,B和C里面都有H(),那么A继承是哪个H()?
广度优先
super关键字 :指针,默认指向的父类

class RichMan(object):
def __init__(self):
self.money = 100000000
self.company = "阿里巴巴"
self.__house = "北京"
def tell_moto(self):
print("我没有钱")
def __speak(self):
print("讲英文贼溜")
def working(self):
print("A员工工作的认真")
class Son(RichMan,object):
def working(self):
print("B员工工作认真")
def test(self):
self.working()
super().working()
if __name__ == '__main__':
s = Son()
# print(s.money)
# print(s.company)
# print(s.tell_moto())
# print(s.working())
s.test()

多态
python不重要`

ArrayList a1 = new ArrayList();
List l1 = new ArrayList();

弱数据类型语言 ,因为不用声明数据类型

异常

了解什么是异常
异常:正常的情况,运行程序的过程中出现问题,BUG(错误不一定是异常)
处理异常
try代码块
try:
#放的是有可能造成异常的代码
except:
#处理异常

try:
num = int(input("请你输入一个数:"))
result = num + 10
#except Exception as e:
except ValueError as e:
print("出异常")
print("在这里处理异常,出现的异常是",e)
num = int(input("输入的格式是数字:"))
result = num + 10
print("结束了")

常见的异常:
import builtins
dir(builtins)
异常的继承关系
BaseException 是所有异常的父类

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值