为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
看到这里,好像python的强制缩进使得复杂代码块的封装变得困难了
def is_sqr(x):
for i in range(1,11):
if x== i*i:
return x
print filter(is_sqr, range(1, 101))
属性不就是实现了set方法和get方法的实例变量吗?我认为老师讲的思路没有错,一楼的说法只能是作为一个记忆性理解,@property本质上就是装饰器,使函数实现set方法和get方法
最后是显示2还是显示2/1我觉得都可以吧,2/1能够反应数据类型,2更加符合常识:
def __str__(self):
if self.q == 1:
return '%s' % self.p
else:
return '%s/%s' % (self.p,self.q)
def simple(self):
for i in range(int(max(self.p,self.q)**1/2)):
if ( self.p % (i + 2) == 0 ) and ( self.q % (i + 2) == 0 ):
self.p = self.p / (i+2)
self.q = self.q / (i+2)
return self
如果list中含有其他的类,则应该先检查类是否一致:
def __cmp__(self, s):
if s.__class__ != self.__class__:
return 0
elif self.name < s.name:
return -1
elif self.name > s.name:
return 1
elif self.name == s.name:
return 0
dir(object)
['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
动态语言的多态和静态语言c++等多态含义不太一样,c++中的多态就是参数数量和类型不同的方法就是不同方法,而动态语言中的多态其实值的是方法的寻找过程,即向右找到类(或者单件类),在类中找不到的话再找父类,一直在祖先链中找到或者找不到为止,先找到的就被调用:
class MyClass(object):
def fn(x):
print "This is the first fn"
def fn(x,y):
print "This is the second fn"
obj = MyClass()
obj.fn(1)
结果fn被复写,而没有实现多态

+ 我来回答 回答最高可+2积分

最新回答 / 慕仔9151431
当然用图形化的工具比较只管也比较简单,这是可以的,用命令话写命令可以锻炼大家SQL命令这的知识,也可以,都能实现!第二版本中我们就使用图形化工具^_^jbfdqqf
import math

def is_sqr(x):
return math.sqrt(x) % 1 == 0

print filter(is_sqr, range(1, 101))
都说要简单 这个怎么样。
老师辛苦,谢谢!也谢谢imooc,提供这么好的资源。期待python的后续课程!
接下来就要做做项目来巩固

已采纳回答 / qq_侍_0
6章第一节的视频里就说了。类中有关联性的特殊方法__getattr__,__setattr__,__delattr__,都必须实现,那么get/set两者也是关联性方法,所以用@property装饰get方法,那么就会延伸一个可以装饰set方法的装饰器那也就是所说的副产品
并不明白什么是多态。。。
import json

class Students(object):
def __init__(self):
pass

def read(self):
return r'["tim", "Bob", "Alice"]'


s = Students()

print json.load(s)
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消