您的位置:首页 > 编程语言 > Python开发

Python --- 第二周周五学习内容

2018-03-10 15:26 106 查看
定义类 创建对象

代码注释骗 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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: