Python --- 第二周周五学习内容
2018-03-10 15:26
106 查看
定义类 创建对象
代码注释骗 1
代码注释篇 2
代码注释骗 3
代码注释篇 4
代码注释骗 5
代码注释骗 6
代码注释骗 1
class Rectangle(object): def __init__(self,width,height): self._width = width self._height = height def area(self): # 由于上步中已经给对象绑定了属性 故此时self 是自带长宽属性的 return self._height * self._width def perimeter(self): return (self._height + self._width) * 2 class Clock(object): def __init__(self,hour=0,minute=0,second=0): """ 构造器 :param hour: :param minute: :param second: """ self._hour = hour self._minute=minute self._second = second def run(self): """走字""" self._second += 1 if self._second == 60: self._second = 0 self._minute += 1 if self._minute == 60: self._minute = 0 self._hour += 1 if self._hour == 24: self.hour = 0 # 下面的方法可以获得对象的字符串表示形式 # 当我们用print打印对象时会自动调用该方法 def __str__(self): """显示时间""" return '%02d:%02d:%02d'% \ (self._hour,self._minute,self._second)
代码注释篇 2
from rect import Rectangle # Step 1 .定义类 # 类是对象的蓝图和模板 有了类就可以创建对象 # 定义类需要做两件事: 数据抽象和行为抽象 # 数据抽象 - 抽取对象共同的静态特征(找名词) - 属性 # 行为抽象 - 抽取对象共同的动态特征(找动词) - 方法 # 定义类的关键字 - class - 类名(每个单词首字母大写) class Student: # 定义类 后面单词有几个首字母都要大写 # 构造方法(构造器/构造子 - constructor) # 调用该方法的时侯不是直接使用方法的名字而是使用用类的名字 def __init__(self,name,age=18): # 初始化 age= 18 默认值 名字也可以默认 # 给对象绑定属性 对象格式 stu1 = Student('骆昊',38) # 行为格式 stu1.study('Python程序设计') self.__name = name # 把对象的 self.__age = age # self 对象自己 course新传入参数 对象的静态属性 self.格式 # 我们定义一个方法就代表对象可以接收这个消息 # 对象的方法的第一个参数的都是统一写成self # 它代表了接收消息的对象 - 对象.消息(参数) def study(self,course): # 类里面写一个函数 这个函数一般叫做方法 即学生的行为 # self 代表正在接受这个消息的对象 print('%s正在学习%s'%(self.__name,course)) def watch_av(self): # self 不要改 但不是关键字 if self.__age >= 18: print('%s正在观看岛国爱情动作片'% self.__name) else: print('%s,我们推荐你观看《熊出没》'% self.__name) def main(): rect1 = Rectangle(12,5) print(rect1.area()) print(rect1.perimeter()) rect2 = Rectangle(3,4) print(rect2.area()) print(rect2.perimeter()) """ def main(): # Step2.调用构造方法创建学生对象 # 实际上调用的是student类中__int__方法 stu1 = Student('骆昊',38) # 此处便是造出了一个对象 类名字加圆括号 # stu1.name = '白元芳' # Step3.给对象发消息 # 通过给对象发消息让对象完成某些工作 # 解决任何问题都是通过让对象去做事情 stu1.study('Python程序设计') # 对象加行为函数加行为 stu2 = Student('王大锤',16) # stu2.gae = '100' # 上面__控制就把 白元芳 和100 变成无效的了 如果不加 名字和年龄就变了 # 加_保护起来数据 很少有加两根下划线的 stu2.study('HTML网页设计') stu2.watch_av() """ if __name__ == '__main__': main()
代码注释骗 3
from rect import Clock from time import sleep import os def main(): # print(123) # 10进制 # print(0x123) # 16进制 # print(0o123) # 八进制 # print(0b110) clock = Clock(23,59,58) while True: os.system('cls') # 清屏操作 print(clock) sleep(1) clock.run() if __name__ == '__main__': main()
代码注释篇 4
import os from time import sleep class Clock(): def __init__(self,hour=0,minute=0,second=0): self._hour = hour self._minute = minute self.second = second def times(self): self.second -= 1 if self.second == 0 and self._minute > 0 : self.second = 60 self._minute -= 1 if self._minute == 0 and self._hour > 0: self._minute = 60 self._hour -= 1 elif self.second == 0: return '%02d:%o2d:%02d'%(self._hour,self._minute,self.second) def __str__(self): return '%02d:%02d:%02d'%(self._hour,self._minute,self.second) def main(): p1 = Clock(0,0,6) while True : os.system('cls') print(p1) sleep(1) p1.times() if p1.second < 0 : # 此处调用 要把下划线去掉 否则被保护起来调用不了 还有second前不要加self break if __name__ == '__main__': main()
代码注释骗 5
from math import pi # 我们定义一个类实际上是把数据和操作数据的函数绑定到一起 # 形成一个逻辑上的整体 这个整体就叫对象 # 而且将来任何时候想使用这种对象时直接复用这个类就可以了 class Circle(object): """圆""" def __init__(self,radius): self._radius = radius def area(self): """计算面积""" return pi * self._radius ** 2 def perimeter(self): """计算周长""" return 2 * pi *self._radius def main(): r = float(input('请输入游泳池半径:')) big = Circle(r + 3) small = Circle(r) print('围墙的造价为%.2f元'%(big.perimeter() * 32.5)) # 给对象的行为发出消息big.permeter print('过道的造价为%.2f元'%((big.area() - small.area()) * 25)) if __name__ == '__main__': main()
代码注释骗 6
# 定义一个类描述平面上的点 # 提供移动点和计算到另一个点的距离的方法 from math import sqrt class Point(object): # 类中的所有单词首字母要大些 def __init__(self,x=0,y=0): self._x = x # 给对象绑定属性 绑定后self就自带 x y 属性了 调用x y 时直接用 self.x self.y 加下划线 # 只是为了保护参数 self._y = y def move_to(self,x,y): # 此处self对象本身有x ,y的值 后面的x y是新传入参数 self._x = x self._y = y def move_by(self,dx,dy): self._x += dx self._y += dy def distance_to(self,other): # self对象已经初始化了 ,x,y包含在self中 ,other新传入的参数 other.x # 意思是 x 属于other self._x 相当于取出self中的 x dx = self._x - other._x dy = self._y - other._y return sqrt(dx ** 2 + dy ** 2) def __str__(self): return '(%s,%s)'%(str(self._x),str(self._y)) def main(): # # 创建对象的方法# p1 = Point(3.2,5.1) # 1.创建一个类函数 p2 = Point() # 2.绑定对象的静态属性 print(p1) # 3.创建方法 (抽取行为特征)每个方法 只有创建的对象调用时 才会执行 print(p2) # p1 = Point(3.2,5.1) 创建对象时 打印p1是不会执行方法的 p1.move_to(3,5) # p1.move_to(3,5) 用对象调用方法时才会执行方法 print(p1) # 4.要定义一个方法输出 __str__(self) 执行对象时会自动调用 p1.move_by(-0.2,0.4) # 5.定义main函数 传参和输出在其下操作 print(p1) print(p1.distance_to(p2)) if __name__ == '__main__': main()
相关文章推荐
- Python --- 第二周周四学习内容
- Python --- 第二周周二学习内容
- Python --- 第二周周三学习内容
- 自定义view学习记录--第二部分UI布局(Hencoder的布局过程的三章内容)
- Python学习笔记:字符串(str)基本内容
- 【python学习】网络爬虫——爬百度贴吧帖子内容
- 【Python3.6爬虫学习记录】(四)爬取百度贴吧某帖子内容及图片
- python学习第二站--列表list、tuple
- Python学习第二课-Python变量、运算符、表达式、数据类型
- python学习笔记-Day04-第二部分(lambda表达式)
- python——爬虫学习——基于bs4库的HTML内容查找方法-(3)
- Python学习笔记 第二部分 - 正则表达式 与 爬虫小实例(抓取豆瓣电影中评分大于等于8分的影片)
- 寒假python学习内容(1/15)
- Python基础内容学习总结
- python学习笔记-Day02 -第二部分
- Python --第二周周一学习内容
- Python3学习笔记 根据标签截取内容
- Python学习笔记:元组(tuple)有关内容
- Python学习笔记:字典(dict)有关内容
- python学习记录(1)基础内容