【Python基础编程209 ● 面向对象 ● 给对象添加属性的3种方式】


---------Python基础编程---------

Author : AI菌


 

【内容讲解】

给对象添加属性的3种方式:
1. 在 __init__方法中,通过self添加属性(推荐的方式)
2. 在其它方法种, 通过self添加属性 (不推荐,调用可能会出错)
3. 在类的外面, 通过对象添加属性 (不推荐,调用可能会出错)

 

【代码实现】

class Student:
    """
    给对象添加属性的3种方式:
        1. 在 __init__方法中,通过self添加属性(推荐的方式)
        2. 在其它方法种, 通过self添加属性 (不推荐,调用可能会出错)
        3. 在类的外面, 通过对象添加属性 (不推荐,调用可能会出错)
    """

    # 方式一: 在 __init__方法中,通过self添加属性(推荐的方式)
    def __init__(self, name, age, gender):
        self.name = name
        self.age = age
        self.gender = gender

    # 方式二: 在其它方法种, 通过self添加属性 (不推荐)
    def study(self, course):
        # 第一次调用study()方法时,会给对象添加属性weight,并赋值为200
        self.weight = 200
        print(f"学习{course}")
        # 访问属性stu_num
        print(self.stu_num)


s1 = Student("robot", 20, "")
print(s1.name)
print(s1.age)
print(s1.gender)

# 调研study()方法
# 第一次调用study()方法时,会给对象添加属性weight,并赋值为200

# 调用study()方法会报错: 'Student' object has no attribute 'stu_num'
# 在方式三没有执行之前,s1对象还没有stu_num属性
# 此时, 在study()方法中打印该属性,就会报错
s1.study("AI")
# study()方法中,添加了属性weight,不会报错
print(s1.weight)

# 方式三: 在类的外面, 通过对象添加属性 (不推荐)
# 第一次给s1.stu_num赋值,就是在给对象s1添加属性stu_num,并赋值
s1.stu_num = 1001
print(s1.stu_num)

 

【往期精彩】

▷【Python基础编程196 ● 读取文件的4种方式】
▷【Python基础编程197 ● 读取文件的4种方式】
▷【Python基础编程198 ● 读取文件的4种方式】
▷【Python基础编程199 ● Python怎么读/写很大的文件】
▷【Python基础编程200 ● 读取文件的4种方式】
▷【Python基础编程201 ● 读取文件的4种方式】
▷【Python基础编程202 ● 读取文件的4种方式】
▷【Python基础编程203 ● 读取文件的4种方式】

 

【加群交流】



posted @ 2020-07-31 11:28  AI菌  阅读(736)  评论(0编辑  收藏  举报