说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
在 Python中,属性引用是指通过对象来访问对象的属性或方法。对象可以是任何Python对象,包括类的实例、模块、类本身等等。属性引用通常使用点运算符(.)来完成。
属性引用是后面带有一个句点加一个名称的原型:
attributeref ::= primary "." identifier
此原型必须求值为一个支持属性引用的类型的对象,多数对象都支持属性引用。 随后该对象会被要求产生以指定标识符为名称的属性。 这个产生过程可通过重载 __getattr__()
方法来自定义。 如果这个属性不可用,则将引发 AttributeError 异常。 否则的话,所产生对象的类型和值会根据该对象来确定。 对同一属性引用的多次求值可能产生不同的对象。
例如:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person("Alice", 30)
print(person.name) # 访问对象的名字属性
print(person.age) # 访问对象的年龄属性
访问模块中的变量:
import math
radius = 5
area = math.pi * radius ** 2 # 访问math模块的pi常量
print(area)
根据 Python 的术语表:
简单说:
点号之后的名称是 属性。例如,表达式 z.real 中,real 是对象 z 的属性。严格来说,对模块中名称的引用是属性引用:表达式 modname.funcname
中,modname 是模块对象,funcname 是模块的属性。模块属性和模块中定义的全局名称之间存在直接的映射:它们共享相同的命名空间!
属性可以是只读的或者可写的。 在后一种情况下,可以对属性进行赋值。 模块属性是可写的:你可以写入 modname.the_answer = 42
。 也可以使用 del 语句删除可写属性。 例如,del modname.the_answer
将从名为 modname 对象中移除属性 the_answer。
更新时间:Sept. 17, 2023, 11:13 a.m. 标签:python 属性