小白学python之实例属性和类属性_学习笔记

本文以廖雪峰的官方网站为参考来学习python的。其学习链接为廖雪峰小白学python教程

本文是学习到python的实例属性和类属性。参考链接廖雪峰python实例属性和类属性

class Student(object):
    def __init__(self,name):
        self.name = name

s = Student('Bob')
s.score = 90

print(s.name,s.score)

运行结果:

Bob 90

class Student(object):
    name = 'Student'

s = Student()
print(s.name)
print(Student.name)
s.name = 'Michael'
print(s.name)
print(Student.name)

运行结果:

Student
Student
Michael
Student

笔记:

在编写程序的时候,千万不要对实例属性和类属性使用相同的名字,因为相同名称的实例属性将屏蔽掉类属性,但是当你删除实例属性后,再使用相同的名称,访问到的将是类属性。

练习:

# -*- coding: utf-8 -*-
class Student(object):
    count = 0

    def __init__(self,name):
        self.name = name
        Student.count +=1

# 测试:
if Student.count != 0:
    print('测试失败!')
else:
    bart = Student('Bart')
    if Student.count != 1:
        print('测试失败!')
    else:
        lisa = Student('Bart')
        if Student.count != 2:
            print('测试失败!')
        else:
            print('Students:', Student.count)
            print('测试通过!')

笔记:

小结

实例属性属于各个实例所有,互不干扰;

类属性属于类所有,所有实例共享一个属性;

不要对实例属性和类属性使用相同的名字,否则将产生难以发现的错误。

猜你喜欢

转载自blog.csdn.net/u010352129/article/details/84022379
今日推荐