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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 可以在自定义的类中定义__str__()方法,这样在调用print p的时候,就可以打印出自己想要的效果。 这就好比定义java中的toString()方法一样 另外,需要注意的是,实现了__str__方法后,只是print p的时候能按__str__方法中定义的格式打印出实例 当把多个实例放到list集合中,再去打印集合的时候(print list),是打印不出__str__方法定义的格式的,如: L = [p1, p2, p3] print L #打印结果为[<__main__.Person object at 0x025AFC70>, <__main__.Person object at 0x025AFCB0>, <__main__.Person object at 0x025AFC10>] print p1 #打印结果为(Person: Bart) 解决这一问题的办法就是,实现__repr__方法,而最简单的实现方法就是下面一句话: __str__ = __str__
    查看全部
  • 打印一个实例,实际上调用的就是这个实例的__str__()方法。 这有点类似java中的toString()方法
    查看全部
  • 本例主要掌握python中的几个方法: 1、type(x):返回x的类型 如: >>> type(123) <type 'int'> >>> s = Student('Bob', 'Male', 88) >>> type(s) <class '__main__.Student'> 2、dir():获取变量的所有属性 如: >>> dir(123) # 整数也有很多属性... ['__abs__', '__add__', '__and__', '__class__', '__cmp__', ...] >>> dir(s) ['__class__', '__delattr__',......, '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'gender', 'name', 'score', 'whoAmI'] 3、getattr(s, '属性名'):获取一个实例s的属性的值。若获取的属性不存在,回去报错AttributeError。所有可使用getattr(s, 'age', 20),若age属性不存在则返回20. 4、setattr(s, '属性名', '属性值'):为一个实例s设置或添加属性
    查看全部
  • Python中有多继承 这点与java不同,java中是“单继承,多实现” C++中也有多继承
    查看全部
  • Python是动态语言: 动态语言和静态语言(例如Java)最大的差别之一,就是动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。 例如: def who_am_i(x): print x.whoAmI() 在调用这个函数who_am_i(x)的时候,不管x是什么类型,只要x有whoAmI()方法就可以调用成功 另外,json有一个load(x)方法,只要x有read()方法就能调用成功: json.load(f) 注,目前对这个load方法的作用还不清楚,有时间要弄清楚
    查看全部
    0 采集 收起 来源:python中多态

    2017-07-22

  • Python中可以用isintance方法判断类型,如: isinstance(t, Person) 另外,python中的object类的首字母是小写,注意别写错
    查看全部
  • 1、Python中继承一个类,一定要用 super(Student, self).__init__(name, gender) 去初始化父类,否则,继承自 Person 的 Student 将没有 name 和 gender。 2、super(Student, self)将返回当前类继承的父类
    查看全部
  • Python中: 1、python中的类方法,就类似于java中的静态成员方法。类方法的定义格式为: @classmethod def 类方法名(cls, ...) 说明:通过标记@classmethod,将该方法标记到为类的类方法,类的第一个参数必须是类本身,即cls 2、类方法无法获得任何实例变量。这就和java中静态成员方法不能调用非静态成员变量一样。 总结:类方法的定义方法就是,在方法上标记@classmethod,并将方法的第一个参数写为cls
    查看全部
  • Python中: 1、从现在开始要区分“方法”和“函数”这两个词 2、我们在 class 中定义的实例方法其实也是属性,它实际上是一个函数对象。也就是说,p1.get_grade 返回的是一个函数对象,但这个函数是一个绑定到实例的函数,p1.get_grade() 才是方法调用。 3、因为方法也是一个属性,所以,它也可以动态地添加到实例上,只是需要用 types.MethodType() 把一个函数变为一个方法。语法为: p1.get_grade = types.MethodType(fn_get_grade, p1, Person) 其中:fn_get_grade为一个函数对象
    查看全部
  • Python中: 1、实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实例本身。其实这就可理解为java中的成员函数 2、所有的实例方法都至少有一个self参数。这在定义实例方法的时候要注意
    查看全部
  • 1、Python中类属性和实例属性重名的时候,遵循以下规则: 当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。 2.类属性被改为两个下划线开头的话,也不能在外部被访问,会报错: AttributeError: type object 'Person' has no attribute '__count' 3、还可以删除一个示例属性,用如下语句: del 实例名.实例属性名 例: del p1.address
    查看全部
  • 1、Python中的类属性,就类似于java中的静态成员变量 2、在类中访问类属性时,要使用"类名.类属性名"的格式 本例,我的错误就是使用了"self.类属性名"的格式来访问
    查看全部
  • math.sqrt()返回结果是浮点数
    查看全部
  • 在python中: 1、如果一个属性由双下划线开头(__),该属性就无法被外部访问,会报错如下: AttributeError: 'Person' object has no attribute '__score' 2、但是,如果一个属性以"__xxx__"的形式定义,那它又可以被外部访问了,以"__xxx__"定义的属性在Python的类中被称为特殊属性,有很多预定义的特殊属性可以使用,通常我们不要把普通属性用"__xxx__"定义。 3、以单下划线开头的属性"_xxx"虽然也可以被外部访问,但是,按照习惯,他们不应该被外部访问。(那为什么还要定义单下划线?不明白)
    查看全部
  • 本例中主要注意两个地方: 1.使用两个*符号的可变参数,就是一个dict, 在使用是可给这种可变参数传入“job='Student'”值。 而使用一个*符号的可变参数,就是一个list。 2.给一个类的属性“添加/设置"新的属性,可以通过python封装好的方法setattr(self,'name','value')来设置或添加,其效果和self.name = 'value'是一样的
    查看全部

举报

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

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