美文网首页
python基础十——继承、多态、封装

python基础十——继承、多态、封装

作者: 我想走走 | 来源:发表于2018-03-05 14:19 被阅读8次
class Class1:
    money = 10
    def __init__(self,name):
        self.name = name
        print('我是父类,执行了')
    def method1(self):
        print('555555555555555')
class Class2(Class1):
    money = 1000
    #私有的变量(封装)
    __star = 'fengzi'
    def __init__(self,name,age):
        #调用父类的方法
       # Class1.__init__(self,name)
        super().__init__(name)
        self.age = age
        print('我是子类,执行了')
    def method1(self):
        # 调用父类的方法
        #Class1.method1(self)
        super().method1()
        print('66666666666666')
    def method_new(self):
        print(self.__star)
print(Class2.money)
# Class2.method1()
s1 = Class2('fengfeng',18)
s1.method1()
#可以通过这种方式访问私有属性
print(Class2._Class2__star)
print(Class2.__dict__)
#还可以间接访问
Class2.method_new(s1)

反射

class Class_a:
    faker = 'fake'
    def __init__(self,name,addr):
        self.name = name
        self.addr = addr[图片上传中...(NA@2NE]{((6OW4G%8[))8G6.png-94664-1520230442274-0)]

    def method1(self):
        print('5556')
    def method2(self):
        print('6666')
b1 = Class_a('xiye','shanghai')
print(hasattr(b1,'name'))
print(hasattr(b1,'method1'))
print(getattr(b1,'name','名字'))
print(getattr(b1,'method1','方法一'))
func = getattr(b1,'method1','方法1')
func()
setattr(b1,'xiaoming','a')
print(b1.__dict__)
delattr(b1,'name')
print(b1.__dict__)

setattr(b1,'func1',lambda x:x+1)
print(b1.__dict__)
print(b1.func1(10))
1.png

动态导入模块

# from m1 import t
# t.test1()

#返回的永远是最顶层的模块
# module_t = __import__('m1.t')
# print(module_t)
# module_t.t.test1()
#
# #from m1.t import *
# #私有化之后这样可以调用,没有绝对的私有
# from m1.t import test1,_test2
# test1()
# _test2()

#导入方式
#直接能拿到对应的模块
import importlib
a = importlib.import_module('m1.t')
print(a)
a.test1()
a._test2()

相关文章

  • python基础十——继承、多态、封装

    反射 动态导入模块

  • java多态

    概述 面向对线的四个基本特征:抽象,封装,基础,多态。抽象,封装,继承是多态的基础,多态是抽象,封装,继承的表现 ...

  • Java的基本特性

    关系 Java的四个基本特性分别是抽象,封装,继承,多态。概括起来可以这么理解,抽象、封装、继承是多态的基础,多态...

  • Java笔记

    Java基础 Java面试通关要点 1.面向对象的特征 封装 继承 多态 封装继承多态 2.final,final...

  • 设计模式总结

    1、模式依赖基础与原则 1.1、基础 抽象,封装,多态,继承 1.2、原则 封装变化,多用组合、少用继承,针对接口...

  • Python面向对象-多态

    面向对象的三大特性 封装 继承 多态 python学习过程中,封装继承将随处可见,但却很少遇见多态,那么pytho...

  • 宅男知识大补丸 学多态 认包包

    java零基础入门-面向对象篇(十) 多态 面向对象的三大特征,封装,继承我们讲完了,这次来讲多态。 多态就是指一...

  • Python面向对象编程(下)

    数据封装、继承和多态是面向对象程序设计中最基础的3个概念,今天学习下Python中的高级特性——多重继承、定制类、...

  • 小白学python之☞面向对象

    首先来说,python是一门面向对象的语言,所以封装、继承、多态自然就不必多说了(不明白啥是封装、继承、多态的同学...

  • iOS开发之一OC语言的特性

    三大特性:封装、继承、多态 一、封装(成员变量的封装) 二、继承 三、多态(多种形态)

网友评论

      本文标题:python基础十——继承、多态、封装

      本文链接:https://www.haomeiwen.com/subject/ifxhfftx.html