5.14学习笔记(python基础教程)

P119:self参数正是方法和函数的区别。方法(更专业一点可以成为绑定方法)将它们的第一个参数绑定到所属的实例上,因此无需显式提供该参数。当然也可将特性绑定到一个普通函数上,这样就不会有特殊的self参数了。

让方法变成私有:在名字前面加上双下划线

class Secretive:
	def __inaccessible(self):
		print("Bet you can't see me")
	def accessible(self):
		print("The secret message is:")
		self.__inaccessible()
s = Secretive()
s.__inaccessible()			\\此行报错
s._Secretive.inaccessible
s.accessible()

超类:将其他类名写在class语句后的圆括号内可以指定超类

class Filter:
	def init(self):
		self.blocked=[]
	def filter(self,sequence):
		return [x for x in sequence if x not in self.blocked]
class SPAMFilter(Filter):	#SPAMFilter是Filter的子类
	def init(self):					#重写Filter超类中的init方法
		self.blocked=['SPAM']
f = Filter()
f.init()
f.filter([1,2,3])
s = SPANFilter()
s.init()
s.filter(['SPAM','eggs','bacon','SPAM‘])

这里用提供新定义的方式重写了Filter的init定义。filter方法的定义是从Filter类中继承的。

多个超类,多重继承,若有相同名字的不同方法,先继承的类会覆写后继承的类中的方法。

class Calculator:
    def calculate(self,expression):
        self.value = eval(expression)
class Talker:
    def talk(self):
        print("value is",self.value)
class TalkingCalcultor(Calculator,Talker):
    pass
tc = TalkingCalcultor()
tc.calculate('1+2*3')
tc.talk()

查看方法是否存在
hasattr(tc,‘talk’)
查看接口是否可调用
hasattr(getattr(tc,‘talk’),‘call’)

捕获多个异常并打印

try:
	x=5
	y=0
	print(x/y)
except (ZeroDivisionError,TypeError) as e:
	print(e)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值