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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
class FTeacher(Teacher, FootballMixin):
def __init__(self, a, skill):
super(FTeacher, self).__init__(a)
super(FootballMixin, self).__init__(skill)

b = BStudent('Tom', 'basketball')
print b.skill

k = FTeacher('Peter', 'football')
print k.skill
class BStudent(Student, BasketballMixin):
def __init__(self, a, skill):
super(BStudent, self).__init__(a)
super(BasketballMixin, self).__init__(skill)
class SkillMixin(object):
def __init__(self, skill):
self.skill = skill

class BasketballMixin(SkillMixin):
def skill(self):
return 'basketball'

class FootballMixin(SkillMixin):
def skill(self):
return 'football'
看了全部评论,没有一个正确答案,只能自己写了:
class Person(object):
def __init__(self, a):
self.a = a

class Student(Person):
def __init__(self, a):
super(Student, self).__init__(a)

class Teacher(Person):
def __init__(self, a):
super(Teacher, self).__init__(a)
class Student(Person):

__slots__ =('score')
#slots可以继承自父类,子类想添加属性只需把新的属性用slots定义一遍即可
def __init__(self,name,gender,score):
Person.__init__(self,name,gender)
#继承可以不用super.格式:父类.__init__(self,想继承的属性)
self.score = score
1.@property,可以将python定义的函数“当做”属性访问,从而提供更加友好访问方式
2.用 @property 修饰的 "get "作用的方法拥有只读属性,如果想实现可写属性,则必须配套使用@方法名.setter来编写一个set函数
Bob心里苦啊
python 会将 __xxx (双下划线) 属性 转换为 _classname__xxx (在此属性名前 添加 单下划线和类名),所以访问__xxx 不行,需要访问 _classname_xxx 。通过 classname.__dict__ 查看 类 的属性
class Person(object):
def __init__(self, name, score):
self.name = name
self.__score = score

p = Person('Bob', 59)

print p.name
try:
print p.__score
except(AttributeError):
print 'attributeerror'
cmp属于什么方法
raise ValueError('invalid score')手工引发一个异常,raise后接异常名和初始化参数
最大公约数算法
方法一:
def gcd(a, b):
if b == 0:
return a
return gcd(b, a % b)
方法二:
def gcd(a, b):
if a < b:
a, b = b, a

while b != 0:
temp = a % b
a = b
b = temp

return a
def __str__(self):
return str(self.numbers)
#__str__函数只能返回str类型的量
class Students(object):
def __init__(self, name): #括号里的是参数名而不是属性名
self.shuxing = name #不要混淆
def __cmp__(self, s):
if self.score == s.score:
return cmp(self.name, s.name)
return -cmp(self.score, s.score)
#在我们自己定义的Student类中,sorted函数只是不知道该cmp什么,只需要调用cmp函数告诉他参数试self.name即可,不用亲自再把等于1,-1,0的cmp函数重新定义一遍
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消