小白學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
測試成功!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章