——init_()方法
访问属性
继承
定义子类的方法
# -*- coding: utf-8 -*-
class Student(object):
def __init__(self,name,score):
self._name=name
self._score=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')
def get_grade(self):
if self._score >=90:
return 'A'
elif self._score >=60:
return 'B'
else:
return 'C'
bart=Student('Bart Simpson',90)
print('bart.get_name()=',bart.get_name())
bart.set_score(95)
print ('bart.get_score()=',bart.get_score())
print ('Do Not Use Bart_Student_name:',bart.get_name())
如果变量名_就变成了一个私有变量,只有内部才可以使用,外部无法访问。
使用_slots_
为了达到限制的目的,python允许在定义class的时候,定义一个特殊的_slots_变量,来限制class实例能添加的属性。
@propenrty
class Student(object):
@property
def score(self):
return self.score
@score.setter
def score(self,value):
if not isinstance(value,int):
raise ValueError('score must be an interger!')
if value <0 or value >100:
raise ValueError("score must between 0~10")
self._score=value
MixIn
错误异常捕捉处理
try:
print('try...')
r = 10 / 0
print('result:', r)
except ZeroDivisionError as e:
print('except:', e)
finally:
print('finally...')
print('END')