菁英科技(卓目鸟学苑)- 专注软件测试菁英教育

标题: python_白李娜_20200122 [打印本页]

作者: つ兜兜里没糖    时间: 2021-1-22 20:34
标题: python_白李娜_20200122
一、整理笔记
1.封装
class Dog:
    def __init__(self,name,age,color,breed):
        #定义类的属性(数据)
        #self:指代当前对象
        #变量的作用域:作用的范围
        #name是局部变量,它的作用范围仅限于定义它的函数或者方法内部
        #self.name是成员变量,它的作用范围定义它的类的内部
        self.__name = name
        self.__age = age
        self.color = color
        self.breed = breed
        # __xxxx,变量名前有两个下划线,表示该变量是一个私有变量
        #私有变量只允许子类的内部访问,不能从类的外部进行访问
    '''
    封装:
        把数据和处理数据的逻辑封装起来
        调用方便,并且不需要知道内部的细节
    '''
    def show(self):
        print (self.__name,self.__age,self.__color,self.__weight)

    #getter/setter方法,用于读写对象的属性

    def get_name(self):
        return self.__name
    def get_age(self):
        return self.__age
    def get_color(self):
        return self.__color
    def get_weight(self):
        return self.__weight


    def set_name(self,name):
        self.__name = name
    def set_age(self,age):
        if age>0 and age<=15:
            self.__age = age
        else:
            #抛出异常
            raise NameError('错误的年龄')
    def set_color(self,color):
        self.__color = color
    def set_weight(self,weight):
        if weight>0 and weight<=50:
            self.__weight = weight
        else:
            raise NameError('错误的体重')


wangcai = Dog('旺财',4,'黄白','苏格兰牧羊犬')

wangcai.set_name('wangwang')
wangcai.set_age(10)
wangcai.set_color('白')
wangcai.set_weight(44)
wangcai.show()



2.继承
#  object类是所有其他类的父类
# 如果一个类的父类是object,可以不必声明
class Animal(object):
    #如果没有显式的提供构造的方法,程序会提供一个默认的构造方法
    def run(self):
        print('动物正在跑...')
'''
--继承
Dog类继承了Animal类,我们把Dog类称为子类,Animal类称为父类
继承的好处:子类可以获得父类的全部功能(包括属性和方法)
继承的同时子类也可以有自己的方法,并且子类可以对继承自父类的方法进行重写
'''
class Dog(Animal):
    def bark(self):
        print('wwwwwwwang.....')
    #重写
    def run(self):
        print('dog is running......')
class Cat(Animal):
    def eat(self):
        print('eat fish......')
    def run(self):
        print('cat is climbing......')

a = Animal()
a.run()

dog = Dog()
dog.run()
dog.bark()

cat = Cat()
cat.run()
cat.eat()



3.多态
'''
--多态
   同一个对象在不同的场合表现出不同的状态,称之为多态
   多态可以简化方法的调用

'''
#isinstance(),判断某个对象是否是某一类的一个实例

print(isinstance(dog,Dog))
print(isinstance(dog,Animal))
#自定义的数据类型:类

def run_twice(animal):
    animal.run()
    animal.run()
run_twice(a)
run_twice(dog)







欢迎光临 菁英科技(卓目鸟学苑)- 专注软件测试菁英教育 (http://www.zmnxy.com/) Powered by Discuz! X3.4