为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
python进阶_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • getattr和setattr的区别是什么(问答) getattr(Instance , 'name, 'not find') #如果Instance 对象中有属性name则打印self.name的值,否则打印'not find' setattr(sinfo,'python','haha')##和:sinfo.python = 'haha' 效果一样
    查看全部
  • Python中获得对象信息 用isinstance()判断是什么类型的实例 用dir()函数获取变量的所有属性 对于实例变量 dir()返回所有实例属性 方法也是一个属性 __class__这类有特殊意义的属性也包括 怎样只保留我们自己定义的属性 dir()返回的属性是字符串列表,如果已知一个属性名称,要获取或设置对象的属性, 就需要用getattr() setattr() getattr(s, 'name') # 获取name属性 getattr(s, 'age', 20) # 获取age属性,如果属性不存在,就返回默认值20:
    查看全部
  • 在该例子中 skill是一种方法,属性是定义在__init__中的所以不是属性 print s.skill()是调用了s的skill方法 BStudeent继承了skill的方法
    查看全部
  • python中的多重继承 Python中可以从多个父类中继承 称为多重继承 D 同时继承自 B 和 C,也就是 D 拥有了 A、B、C 的全部功能 多重继承的目的是 从两种继承树中分别选择并继承出子类,以便组合功能的使用 如若没有多重继承实现上述所有可能的组合需要 4x2=8 个子类。
    查看全部
  • json.load接收一个file like object 任何对象有read方法的,都可视为file like object 不是用__init__()来构建实例的,仅在创建时调用改函数设置初识属性。所以,在定义class的时候,__init__()本来就不是必须的。需要根据需求来决定是否添加
    查看全部
    0 采集 收起 来源:python中多态

    2017-03-03

  • python中多态 子类可以向上转型看做父类类型 两个子类都写了whoAml()方法 法调用将作用在 x 的实际类型上 实际上拥有自己的 whoAmI()方法以及从 Person继承的 whoAmI方法 调用 s.whoAmI()总是先查找它自身的定义,如果没有定义,则顺着继承链向上查找,直到在某个父类中找到为止 动态语言调用实例的方法不检查类型,只要方法存在,就可以调用
    查看全部
    0 采集 收起 来源:python中多态

    2017-03-03

  • isinstance()可以判断一个变量的类型,用字自定义的类 isinstance(p, Person) True # p是Person类型 >>> isinstance(p, Student) False # p不是Student类型 >>> isinstance(p, Teacher) False # p不是Teacher类型 一个父类的实例不能使子类的类型 子类可以看成是父类的实例 >>> isinstance(s, Person) True # s是Person类型
    查看全部
  • List数组的属性upper(),lower(),不是太懂。定义s是个list ,为什么 s.lower()是把每个元素的字符都小写,s是那个List数组,而不是数组中的每个元素呀?
    查看全部
  • 匿名函数 lambda x: x * x 实际上就是: def f(x): return x * x 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。 匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。
    查看全部
  • uper(ClassB,self).__init__()处理方式是ClassB(当前子类)首先找到它的父类,然后调用父类的__init__方法 super本身不声明父类是哪一个,只是在class ClassB(ClassA)时指明了父类ClassA 上例的super也可以改写成Person.__init__(self,name,gender) 这是调用了Person的函数__init__,可以不严格地理解: form Person import __init__(当然它不是一个模块) 两者区别在于super更像是继承,而Person.__init__则偏向函数调用,因此前者要好一些 (来自评论)
    查看全部
  • Python中继承一个类 super(student,self).__init__(name,gender)作用是初始化父类 不用的话继承person的student没有name,gender super(student,self)将会返回当前类继承的父类--》person 然后调用__init__()方法 self已经在supper()中传入,在__init__()中隐式传递,不许写出
    查看全部
  • 私有属性不可以直接被调用,但可以通过方法来调用,包括类方法 def how_many(cls) return cls.__count print Person.how_many()!(类方法--》Person.) 和实例方法 def how_many(self) return self.__count p1=Person('bob') print p1.how_many()(实例方法-->p1.) ,所以如果要想调用出私有属性的值,定义方法就可以啦
    查看全部
  • python中定义类方法 和属性类似,方法也分实例方法和类方法 标记一个 @classmethod,该方法将绑定到 Person 类上 只能获得类的引用。
    查看全部
  • ypes.MethodType,它接受三个参数,第一,你要绑定的函数,第二,对象,第三,绑定的类 方法和函数的区别 方法是在类的内部定义的,只能通过实例化之后使用;而函数是在程序内定义的,可以不必实例化,直接用。举个例子,如果有个方法和函数都叫func,方法的调用方法必须是a.func()(其中,a为类的实例);函数的调用方法为func() print p1.get_grade() 这里其实是传入了p1作为self参数的,只是不是显式传入。 而没有括号只是 p1.get_grade 的话就只是一个函数名了,只代表一个函数
    查看全部
  • python中方法也是属性 p1.get_grade 返回的是一个函数对象,但这个函数是一个绑定到实例的函数,p1.get_grade() 才是方法调用 types.MethodType() 把一个函数变为一个方法 p1.get_grade = types.MethodType(fn_get_grade, p1, Person)
    查看全部

举报

0/150
提交
取消
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!