小白学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
测试成功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FPGA技术指导

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值