小白学python之访问限制_学习笔记

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

本文是学习到python的访问限制。参考链接廖雪峰python访问限制

class Student(object):

    def __init__(self,name,score):
        self.__name= name
        self.__score = score

    def print_score(self):
        print('%s: %s' % (self.__name, self.__score))

bart = Student('Bart Simpson',59)
bart.__name

运行结果为 :

Traceback (most recent call last):
  File "**********", line 11, in <module>
    bart.__name
AttributeError: 'Student' object has no attribute '__name'

无法访问实例变量。

如果输入代码

bart.print_score()

则会得到结果:

Bart Simpson: 59

class Student(object):

    def __init__(self,name,score):
        self.__name= name
        self.__score = score

    def print_score(self):
        print('%s: %s' % (self.__name, self.__score))

    def get_name(self):
        return self.__name

    def get_score(self):
        return self.__score

bart.print_score()
print(bart.get_name())
print(bart.get_score())

输入上面代码可以得到:

Bart Simpson: 59
Bart Simpson
59

现在可以访问实例变量了。

class Student(object):

    def __init__(self,name,score):
        self.__name= name
        self.__score = score

    def print_score(self):
        print('%s: %s' % (self.__name, self.__score))

    def get_name(self):
        return self.__name

    def get_score(self):
        return self.__score

    def set_score(self,score):
        if 0 <= score <= 100:
            self.__score = score
        else:
            raise ValueError('bad score')

输入代码:

bart.set_score(99)
bart.print_score()
print(bart.get_score())

可以得到:

Bart Simpson: 99
99


# -*- coding: utf-8 -*-
class Student(object):
    def __init__(self,name,gender):
        self.name = name
        self.gender = gender

    def get_gender(self):
        return self.gender;

    def set_gender(self,gender):
        self.gender = gender

# 测试:
bart = Student('Bart', 'male')
print(bart.get_gender)
print(bart.get_gender())
print(type(bart.get_gender()))
print(type('male'))
if bart.get_gender() != 'male':
    print('测试失败!')
    print(bart.get_gender())
else:
    bart.set_gender('female')
    print(bart.get_gender())
    if bart.get_gender() != 'female':
        print('测试失败!')
    else:
        print('测试成功!')

以上为文章结尾测试题目和本人做的答案。

编译结果为

<bound method Student.get_gender of <__main__.Student object at 0x00000000021B1DD8>>
male
<class 'str'>
<class 'str'>
female
测试成功!

猜你喜欢

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