获取属性以及基本方法

Posted mximo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取属性以及基本方法相关的知识,希望对你有一定的参考价值。

静态语言 vs 动态语言
对于静态语言(例如Java)来说,如果需要传入Animal类型,则传入的对象必须是Animal类型或者它的子类,否则,
将无法调用run()方法。
对于Python这样的动态语言来说,则不一定需要传入Animal类型。我们只需要保证传入的对象有一个run()方法就可以
了。

Python的“file-like object“就是一种鸭子类型。对真正的文件对象,它有一个read()方法,返回其内容。但是,许多对
象,只要有read()方法,都被视为“file-like object“。许多函数接收的参数就是“file-like object“,你不一定要传入真正的文
件对象,完全可以传入任何实现了read()方法的对象

 

 

type() :获取对象类型

>>> type(123)
<class int>
>>> type(str)
<class str>
>>> type(None)
<type(None) NoneType>

isinstance():判断对象和类型关系,也可判断基本类型

>>> a = Animal()
>>> d = Dog()
>>> h = Husky()
>>> isinstance(h, Husky)
>>> isinstance(h, Animal)
>>> isinstance(a, str)
True
>>> isinstance(123, int)
True
>>> isinstance(ba, bytes)
>>> isinstance([1, 2, 3], (list, tuple))
True
>>> isinstance((1, 2, 3), (list, tuple))

dir():获取一个对象所有属性和方法

>>> dir(ABC)

getattr()、setattr()以及hasattr(),我们可以直接操作一个对象的状态:

>>> hasattr(obj, x) # 有属性‘x‘吗?
True
>>> obj.x
9 >>> hasattr(obj, y) #
有
属
性
y
?
False
>>> setattr(obj, y, 19) # 设置一个属性‘y‘
>>> hasattr(obj, y) # 有属性‘y‘吗?
True
>>> getattr(obj, y) # 获取属性‘y‘
19
>>> obj.y # 获取属性‘y‘

 

以上是关于获取属性以及基本方法的主要内容,如果未能解决你的问题,请参考以下文章

一旦单击带有 in 片段的回收器列表项,如何将片段意向活动,以及如何获取回收器项目值?

变量的内存分析图

vue父组件获取子组件的属性或方法

将公共属性和方法公开给 Main Activity 的片段是不是是一种不好的形式?

常用python日期日志获取内容循环的代码片段

Java基础之方法的调用重载以及简单的递归