Skip to main content
 Web开发网 » 编程语言 » Python语言

学习编程第210天 python编程 类的接口

2021年11月27日7270百度已收录

学习编程第210天 python编程 类的接口

今天学习的是刘金玉老师零基础Python教程108期类的接口。

一、接口

在python中没有接口的概念。这里的接口可以理解为一种规范。定义一种接口实际上是定义一个规范,一个接口类可以定义多个规范。每个规范实际上是一个函数(方法)名称。接口的实现:通过具体继承这个接口的类来具体实现。

(一)hasattr函数断代替接口是否存在

采用hasatrr(参数1,参数2)函数来判断代替接口是否存在,参数1是某个类实例化的对象,参数2是某个方法名称,用字符串类型表示。如果某个参数1对象中有参数2的方法,那么就返回True,否则返回False。通过测试,hasatrr函数同样适用于类的属性。

案例:

class person:

name="四川二流子"

def say(self):

print("中文")

ps=person()

print(hasattr(ps,"say"))

print(hasattr(ps,"say"))

学习编程第210天 python编程 类的接口  Python接口 第1张

(二)getattr函数获取某个方法

getattr(参数1,参数2[,参数3])

参数1:某个类的对象

参数2:某个类的方法名称,注意这个方法名称不要加小括号

参数3:默认函数,这个方法可以被省略,但是如果被省略的情况下,参数2这个方法名称如果不存在的话,这个函数会直接报异常。如果参数3没有省略,那么这个getattr函数的结果,在参数2不存在的情况下,会返回参数3,使得结果不会报错。注意,参数3在写的时候不要加小括号,一旦加上小括号,参数3这个方法名称就会被自动执行。这里的参效3中的方法名称不一定是要在类的内部的,也可以是外部自定义的。

案例:

class person:

name="四川二流子"

def say(self):

print("中文")

def sing(self):

print("唱歌")

def chuiniu():

print("开始吹牛")

ps=person()

m=getattr(ps,"say",ps.sing)

m()

n=getattr(ps,"say1",chuiniu)

n()

学习编程第210天 python编程 类的接口  Python接口 第2张

(三)setattr函数设置对象的默认方法与属性

setattr(参数1,参数2,参数3)

参数1:某个类的实例化对象

参数2:需要设置的某个类的新的方法或属性名称

参数3:对象参数2中的方法或属性名称的具体的值。如果参数2是一个属性,那么参数3可以直接设置这个属性的值。如果参数2是一个方法,那么参数3可以设置自定义的某个方法名称,这里不要写成字符串的形式,而是直接写某个方法名称。

class person:

name="四川二流子"

def say(self):

print("中文")

def sing(self):

print("唱歌")

def program():

print("刘金玉编程")

ps=person()

method=setattr(ps,"programming",program)

ps.programming()

学习编程第210天 python编程 类的接口  Python接口 第3张

评论列表暂无评论
发表评论
微信