小白學python之訪問限制_學習筆記
阿新 • • 發佈:2018-11-13
本文以廖雪峰的官方網站為參考來學習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
測試成功!