菁英科技(卓目鸟学苑)- 专注软件测试菁英教育
标题: python_ 武浩杰_20210122 [打印本页]
作者: 海底月是天上月 时间: 2021-1-22 20:36
标题: python_ 武浩杰_20210122
'''
模块 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)
欢迎光临 菁英科技(卓目鸟学苑)- 专注软件测试菁英教育 (http://www.zmnxy.com/) |
Powered by Discuz! X3.4 |