标签:python 日常 默认 child 表达 概念 相关性 登录系统 面向
1) import+模块名 常规导入,直接导入整个包的所有的功能函数。
import math
import os
import sys
# 以上可简写为:
import math,os,sys
2) from ... import ... 语句
把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明:
from pandas import Series
from pandas import DataFrame as df # 可以起别名
#以上可以简写
from pandas import Series,DataFrame as df
#父类
class A(object):
def __init__(self):
self.num = 10
def print_num(self):
print(self.num + 10)
#子类
class B(A):
pass
b= B()
print(b.num)
b.print_num()
概念:子类只继承一个父类
class Person(object):
def __init__(self):
self.name = "女娲"
def make_person(self):
print(‘{}制造了人类‘.format(self.name))
class Teacher(Person):
# 子类可以继承父类所有的属性和方法,哪怕子类没有自己的属性和方法,也可以使用父类的属性和方法
pass
panda = Teacher() # 创建子类实例对象
print(panda.name) # 子类实例对象可以直接使用父类的属性
panda.make_person() # 子类实例对象可以直接使用父类的方法
概念:子类继承多个父类
class Women(object):
def __init__(self):
self.name = ‘女娲‘
def make_person(self):
print(‘{}制造了人类‘.format(self.name))
def move(self):
print("移动..")
class Man(object):
def __init__(self):
self.name = ‘亚当‘
def make_a_person(self):
print(‘{}制造了一个人‘.format(self.name))
def run(self):
print("跑..")
class Person(Women, Man):
pass
ls = Person()
print(ls.name)
ls.make_person()
ls.make_a_person()
总结:如果多个父类中有同名的属性和方法,则默认使用第一个父类的属性和方法,多个父类中不重名的属性和方法,不会有任何影响。
重写:子类继承父类,父类的方法不满足子类的需求,可以对父类的方法进行重写。
class Person(object):
def run(self):
print(‘跑起来了‘)
class Student(Person):
def __init__(self, name, age):
self.name = name
self.age = age
def run(self):
print("{age}岁的{name}跑起来了".format(age=self.age, name=self.name))
stu1 = Student(‘max‘,18)
stu1.run()
# partents.py
#表示from 模块名 import * 只能使用指定的功能代码,而不是所有的功能代码,
__all__ = [‘g_num‘,‘show‘,‘Teacher‘]
#定义一个全局变量
g_num = 10
#定义一个函数
def show():
print(‘我是一个函数‘)
#定义一个类
class Teacher(object):
#构造函数
def __init__(self,name,age):
self.name = name
self.age = age
def show_info(self):
print("大家好我是{}老师,今年{}岁".format(self.name,self.age))
#入口函数
if __name__ ==‘__main__‘:
Teacher(‘jack‘,40).show_info()
#child.py
from parents import *
show()
print(g_num)
stu = Teacher(‘jack‘,18).show_info()
# 子类不重写父类的构造方法,子类新增了自己的实例方法
class Student(Teacher):
#子类新增了自己的实例方法
def info(self,hobby):
print("student hobby is {}".format(hobby))
stu = Student(‘max‘,‘18‘)
# 子类调用自己的相关方法
stu.info(‘learning‘)
#子类调用父类中继承过来的方法:
stu.show_info()
#子类重写父类中的实例方法
class Student(Teacher):
#子类新增了自己的实例方法
def info(self,hobby):
print("student hobby is {}".format(hobby))
def show_info(self):
print("我重写了父类Teacher中的show_info方法")
stu = Student(‘leon‘,‘18‘)
#子类调用重写过的show_info方法:
stu.show_info()
# 子类重写父类的构造方法
class Student(Teacher):
def __init__(self,students_name,students_age):
self.students_name = students_name
self.students_age = students_age
#子类新增了自己的实例方法
def info(self,hobby):
print("student hobby is {}".format(hobby))
# 子类调用自己的相关方法
stu = Student(‘max‘,‘18‘)
print(stu.students_name)
stu.info(‘leaning‘)
#子类拥有自己的__init__() 方法,但是不覆盖父类的__init__(),此时需要使用super关键词:
class Student(Teacher):
def __init__(self,students_name,students_age):
super(Student,self).__init__(students_name,students_age)
self.students_name = students_name
self.students_age = students_age
#子类新增了自己的实例方法
def info(self,hobby):
print("student hobby is {}".format(hobby))
def intr_stu(self):
print("{students_age}岁的{students_name}介绍自己的爱好是玩".format(students_age=self.students_age,students_name=self.students_name))
def intr_teach(self,hobby):
print("{age}岁的{name}老师介绍自己的爱好是{hobby}".format(age=self.age,name=self.name,hobby=hobby))
# 子类调用自己实例属性对应的实例方法
stu = Student(‘max‘,18)
stu.intr_stu()
#子类自己的实例方法调用其父类所对应的实例属性
stu = Student(‘jack‘,30)
stu.intr_teach("看电影")
标签:python 日常 默认 child 表达 概念 相关性 登录系统 面向
原文地址:https://www.cnblogs.com/lpdeboke/p/12773591.html