我的账户
啄木鸟学院

专注软件测试菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

python_ 武浩杰_20210122

[复制链接]
海底月是天上月学员认证 发表于 2021-1-22 20:36:56 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
'''
模块 module
每一个.py 结尾的源文件都是一个模块
      -模块的好处是方便代码得分维护
      -方便代码的复用
      -使用模块还可以避免变量,函数名等命名冲突
    package
       -包本质上就是一个文件夹
       -在模块名前添加包名,可以避免模块命名冲突
           python.day04.demo01
           python.day05.demo01
       -每一个包目录下都有一个__init__.py的模块
             如多没有,则python把该目录当作普通目录处理
'''
import sys
def test():
    # 调用系统模块获取命令行参数
    args = sys.argv
    print(args)
# test()
# 测试代码  程序入口
if __name__ == "__main__":
    test()
# 导入模块的所有内容
import demo01
# demo01.test()
# 导入模块中指定的内容
# from demo01 import test
# test()
'''
OOP Object Oriented Proogramming --面向对象编程
程序 = 算法 + 数据结构
'''
# 创建一个学生类
# 通过class关键字创建类, 类名通常要求首字母大写
class Student:
    # 方法method
    # __init__ (self)方法也称为--"构造方法"-Constructor
    # 类中每一个方法的第一个参数都必须是self,并且该参数由系统自动传参
    def __init__(self):
        print ('这是构造方法')
# 创建对象-调用Student 类的构造方法创建一个该类的实例-instance
tom = Student()
# 添加数据
tom.name = 'Tom Cruse'
tom. age = 22
tom.gender = ''
print (tom.name)
mike = Student()
mike.name = 'Michael Jordan'
mike.age = 25
mike.score = 99
print (mike.name)
print(tom)
print(mike)
class Dog:
    def __init__(self,name,age,color,weight):
        # 定义类属性(数据)
        # self:代词,指代当前对象
        '''
        变量的作用域
        name是局部变量,它的作用范围仅限于定于它的函数或方法内部
        self.name是成员变量,它的作用范围是定义它的类的内部
        __xxx, 变量名前面有2个下划线,表示该变量是一个私有变量
        私有变量值允许子类的内部访问, 不能从类外部进行访问
        '''
        self.__name = name
        self.__age = age
        self.color = color
        self.weight = weight
    '''
    封装
    把数据和处理数据的逻辑封装起来
    调用方便,并且不需要知道内部的实现细节
    '''
    def show(self):
        print(self.__name,self.__age,self.color,self.weight)
# getter/setter方法,用于读写对象的属性
    def set_name(self,name):
        self.__name = name
    def set_age(self,age):
        return self.__age
    def set_age(self,age):
        if age > 0 and age<=15:
            self.__age = age
        else:
            # 抛出异常
            raise NameError('错误的年龄!')
    def get_color(self):
        return self.__color
    def set_color(self,color):
        self.__color = color)
wangcai = Dog('旺财',4,'黄白','50')
wangcai.show()
# wangcai.__name = '旺旺'
# wangcai.__age = -100
laifu = Dog('来福',3,'','拉布拉多')
laifu.show()
# def show(dog):
#     print(dog.name,dog.age,dog.color,dog.breed)
# show(wangcai)
'''
object 类是所有其他类的父类
如果一个类的父类是object,可以不必声明
'''
class Animal(object):
    # 如果没有显式的提供构造方法,程序会提供一个默认的构造方法
    def run(self):
        print('动物正在跑...')
'''
继承
Dog 类继承了Animal类,我们把Dog类也称为子类,Animal类也称为父类
继承的好处就是子类可以获得父类的全部功能(包括属性和方法)
继承的同时子类也可以有自己的方法
并且子类可以对继承自己父类的方法进行 重写
'''
class Dog(Animal):
    def bark(self):
        print('汪汪汪...')
    # 重写override
    def run(self):
        print('狗在奔跑...')
class Cat(Animal):
a = Animal()
a.run()
dog = Dog()
dog.run()
dog.bark()
cat = Cat()
cat.run()
cat.eat()
'''
多态
-同一种对象在不同的场合表现不同的状态,称之为多态
多态可以简化方法的调用
'''
# isinstance(),判断某个对象是否某个类的一个实例
print(isinstance(dog,Dog))
print(isinstance(dog,Animal))
def run_twice(Animal):
    Animal.run()
    Animal.run()
run_twice(a)
run_twice(dog)
run_twice(cat)

回复

使用道具 举报

关注0

粉丝0

帖子30

发布主题
大家都在学
课堂讨论
一周热帖排行最近7x24小时热帖
关注我们
专注软件测试菁英教育

客服电话:17792550360

客服时间:9:00-21:00

卓目鸟学苑 - 专注软件测试菁英教育!( 陕ICP备20001493号-1 )

版权所有 © 西安菁英教育科技有限公司 2023-2026