Python基础之面向对象
1.构造函数
class test:
def __init__(self,name1,age1):
self.name = name1 ## __init__即为构造函数,初始化实例赋予指定的属性,self代表实例
##对象本身,类中定义属性和方法时需默认加上self
self.age = age1
a = test('aimar','18')
print ('%s is %s' %(a.__name,a.__age))
2. 私有属性和方法
class test:
def __init__(self,name1,age1):
self.__name = name1 ## 变量名前加入两个下划线__ 即代表私有,外部无法访问
self.__age = age1
a = test('aimar','18')
print ('%s is %s' %(a.__name,a.__age))
Traceback (most recent call last):
File "C:/Users/Administrator/PycharmProjects/untitled/test.py", line 92, in <module>
print ('%s is %s' %(a.__name,a.__age))
AttributeError: 'test' object has no attribute '__name'
3.类的三大特性之一:封装
class test:
def __init__(self,name,age):
self.name = name
self.age = age
def kanchai(self):
print('%s is %s years old ,上山去砍柴' %(self.name,self.age))
def kaiche(self):
print ('%s is %s years old,开车去东北' %(self.name,self.age))
def baojian(self):
print ('%s is %s years old,大保健!' %(self.name,self.age))
p1 = test('小明','18')
p2 = test('老李','90')
p1.kanchai()
p1.kaiche()
p1.baojian()
p2.kanchai()
p2.kaiche()
p2.baojian()
#########################################
小明 is 18 years old ,上山去砍柴
小明 is 18 years old,开车去东北
小明 is 18 years old,大保健!
老李 is 90 years old ,上山去砍柴
老李 is 90 years old,开车去东北
老李 is 90 years old,大保健!
4.类的三大特性之一:继承
class People:
def chifan(self):
print('%s eat food' %self.name)
def shuijiao(self):
print('%s sleep' %self.name)
class Man(People):
def __init__(self,name):
self.name = name
def sport(self):
print ('%s play soccer' %self.name)
class Women(People):
def __init__(self,name):
self.name = name
def entertainment(self):
print ('%s shopping' %self.name)
M1 = Man('小明')
M2 = Women('小王')
M1.chifan()
M1.sport()
M2.chifan()
M2.entertainment()
###############################
小明 eat food
小明 play soccer
小王 eat food
小王 shopping