Python中类与成员属性访问:如何访问Project对象的成员属性
如何访问Python中Project类的成员属性?
嘿,刚学Python遇到类属性访问的问题对吧?别担心,我给你一步步讲清楚~
首先得明确:要访问类的实例成员属性,确实得先创建类的实例(也就是你说的Project对象)。我先给你补全一个带属性的Project类示例,方便你对照理解:
class Project(object): # 初始化方法,用来给每个实例绑定专属属性 def __init__(self, project_name, total_budget): self.name = project_name # 实例属性:项目名称 self.budget = total_budget # 实例属性:项目预算
第一步:创建Project对象(实例)
先通过类名加括号的方式,创建一个具体的Project实例:
# 创建一个名为"电商系统重构"、预算80000的项目实例 my_ecommerce_project = Project("电商系统重构", 80000)
第二步:访问成员属性的两种常用方式
1. 直接用点号(.)访问(最常用)
这是Python中访问实例属性最直观的方式,直接在实例后面加.再加属性名就行:
# 读取name属性 print(my_ecommerce_project.name) # 输出: 电商系统重构 # 读取budget属性 print(my_ecommerce_project.budget) # 输出: 80000 # 还可以直接修改属性值 my_ecommerce_project.budget = 95000 print(my_ecommerce_project.budget) # 输出: 95000
2. 使用getattr()函数访问(适合动态场景)
如果你的属性名是存放在变量里的,或者想在属性不存在时返回默认值避免报错,就可以用这个内置函数:
# 把属性名存在变量里,动态获取 target_attr = "name" print(getattr(my_ecommerce_project, target_attr)) # 输出: 电商系统重构 # 属性不存在时返回默认值,不会抛出AttributeError print(getattr(my_ecommerce_project, "duration", "未设置项目周期")) # 输出: 未设置项目周期
额外补充:类属性的访问
如果是属于类本身的属性(不是每个实例专属的),不用创建实例也能访问,当然通过实例也能访问:
class Project(object): # 类属性:所有项目的默认状态 default_status = "进行中" def __init__(self, name, budget): self.name = name self.budget = budget # 直接通过类访问类属性 print(Project.default_status) # 输出: 进行中 # 通过实例访问类属性 my_project = Project("测试项目", 30000) print(my_project.default_status) # 输出: 进行中
内容的提问来源于stack exchange,提问作者aws pivotal
相关产品推荐
相关产品推荐

