本文以廖雪峯的官方網站爲參考來學習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
測試成功!