找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
第8讲  python 中的类型对象
一、 python 中的类
1、类(class): 用来描述具有相同的属性和方法的对象的集合。
2、属性:称为变量    head = 1  hand = 2
3、方法称为行为:人在吃饭 说话  ,在python中,就是在类里面定义函数
4、对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和 方法。
在教室里面的同学都是人类,每个人都是一个对象,
5、实例化:根据一个类创建不同对象的过程实例化
6、类变量:人类共有的属性,头  脚 手
7、实例变量:对象或者实例独有的属性   self
8、类的定义:类名首字母大写
9、class People(object)  新式类
class People   是经典类
10、类里面定义一个方法需要空一格tab键
二、python 中类的定义
1、创建一个类
class People(object):
#object 称为父类,基类,一切类的父类,类里面定义函数需要空一格tab键
head = 1      #这个叫作类变量

#这个是构造函数,也成为构造方法,作用就是创建形式对象用的
# 双下划线表示私有方法
def init(self,name,age):      #这个name就是形式参数
self.name = name         #这个self.name 是实例变量是独有,self是类的对象本身
self.__age = age        #私有的实例变量 也是只能在内部使用


#这个是实例方法
def paly(self):
print(self.name+'去打篮球')

def meeting(self):
print(self.name+'去约会')

# 类方法
# 这个@符号叫作装饰器,装饰器的作用是为了不影响原有功能的基础上添加功能方法
@classmethod
def test(cls):      #cls就是类
print('这个是类方法')

# 静态方法
@staticmethod
def test1():      #这个括号不用参数
print('这个一个静态方法')

# 私有方法 只能在类的内部调用
def __test2(self):
print('这是一个私有方法')

# 私有方法可以通过一个实例方法来引用私有方法的结果
def test3(self):
return self.__test2()

# 私有变量可以通过创建一个实例方法来引用私有变量
def test4(self):
return self.__age
2、创建一个对象
实例化一个对象   对象名 = 类名()
p = People('郭少',18)          #创建一个对象p ,这个对象的名字叫郭少,People('郭少')
                        #匿名对象赋给p对象或者变量
p1 = People('小段')
p.paly()        #用对象调用实例方法
p1.meeting()
3、类和对象调用类变量 、实例变量
print(People.head)         #类调用类变量
print(People.name)         #报错 类不能调用实例变量,实例变量是独有的属性,不能说
#所有的人都叫小段
print(p.name)              #对象调用实例变量
print(p.head)              #对象调用类变量
4、类 和对象调用实例方法  类方法  静态方法
People.paly(p)          #类调用实例方法报错,但是可以传一个参数进去,把对象放进去
People.test()           #类调用类方法
People.test1()          #类调用静态方法
p.paly()               #对象调用实例方法
p.test()               #对象调用类方法
p.test1()               #对象调用静态方法
5、类和对象调用私有方法
People.__test(p)       #调用报错
People.test3(p)        #这个私有变量只能在内部调用,类调用实例方法
p.test3()
6、类和对象调用私有变量
print(People.test4(p))      #类调用私有变量
print(p.test4())            #对象调用私有变量
三、python 中的三大特性  ==》封装  继承  多态
①封装
1、类里面不光有属性还有方法。
2、这种将属性通过方法直接在类内部操作的形式叫做封装。这里的封装是把
属性封装在类内部。
class People:
def init(self):      #构造函数
pass     #占位符
def set_name(self,name):    self.__name = name         #私有的实例变量def get_name(self):    return self.__name
p = People()
p.set_name('xiapduan')
print(p.get_name())
② 继承
1、继承:类的继承是面向对象程序设计的一个重要思想,继承时子 类可以继承父类的内容,
包括成员变量和成员函数。
2、在继承中一个类被另外一个类继承这个类称之为父类也称之为基 类,
则另外一个类则为子类也称之为派生类。
class Father(object):
def init(self):
pass
def smoke(self):
print('喜欢抽烟')
def money(self):    print('有钱')def play(self):    print('喜欢打篮球')
class Son(Father):     #继承Father类
def init(self):
Father.init(self)      #继承父类构造函数
def meinv(self):    print('喜欢美女')def car(self):    print('喜欢豪车')def bar(self):    print('喜欢酒吧')
s = Son()    #创建一个对象s
s.smoke()
s.money()
s.play()
s.car()
s.meinv()
s.bar()
print(isinstance(s,Son))            #True   判断s是否是Son的对象
print(issubclass(Son,Father))        #判断Son是否是Father的子类
③多态
1、多态是以继承和重写父类方法为前提,对所有子类实例化产生的对象
调用相同的方法,执行产生不同的执行结果。
2、例如同样是人,但是当问起一个人的职业时会有不同的结果,可能是 软件测试工程师,
可能是HR
3、一个对象的属性和行为不是由他所继承的父类决定的,而是由其本身 包含的属性和
方法决定的。
class Animal(object):
def say(self):
print('动物园')
class Dog(Animal):
def say(self):
print('汪汪')
class Cat(Animal):
def say(self):
print('喵喵')
d = Dog()
d.say()
c = Cat()
c.say()

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册