类(使用类完成比较复杂的工作)
In [1]:class Person:
def __init__(self, name, age): #__xx__魔法函数--初始化函数,self:如果类生成了一个对象,那么self指的类本身
self._name = name # self._name为每个实例化属性
self._age = age
def get_name(self): #self指的是每个实例化对象它本身,函数中可以添加属性
return self._name
def rename(self, new_name):
self._name = new_name
初始化函数中,self后面的是实例化对象的属性,加下划线的意思是,代表这个属性是私有的,不应该访问
In [2]: s = 'hello world'
s.center(12) #s调用center时,传给函数时会有self这样一个对象,指向其本身
Out [2]: 'hello world '
In [3]:p = Person('jin', 12)
In [4]:p.get_name()
Out [4]: 'jin'
In [5]: p.rename('ming')
In [6]: p.get_name()
Out [6]: 'ming'
# pass 代表什么都不做,只是占位
In [7]: class Student(Person): #继承类
pass
In [8]: s = Student('yue', 26)
s.get_name()
Out[8]: 'yue'
In [9]: class Student(Person): #继承类
def set_score(self, score): #增加Person类没有的一些方法
self._score = score
def get_score(self):
return self._score
In [10]: s = Student('yue', 26)
s.get_name()
Out[8]: 'yue'
In [11]:s.set_score(98)
In [12]:s.get_score()
Out[12]: 98
In [13]:
class Person: def __init__(self, name, age): #__xx__魔法函数--初始化函数,self:如果类生成了一个对象,那么self指的类本身 self._name = name # self._name为每个实例化属性 self._age = age @property def name(self): #get_name-->name 若想直接调用name,使用装饰器 @property return self._name def rename(self, new_name): self._name = new_name In [14]:p = Person('lei', 22) p.name Out[14]: 'lei'