面对对象来着

定义函数:

def 函数名(参数列表):

    函数体

 在Python中可以使用class关键字定义类,然后在类中通过之前学习过的函数来定义方法,这样就可以将对象的动态特征描述出来,代码如下所示。

# __init__是一个特殊方法用于在创建对象时进行初始化操作

# 通过这个方法我们可以为学生对象绑定name和age两个属性

 def __init__(self, name, age): self.name = name self.age = age def study(self, course_name): print('%s正在学习%s.' % (self.name, course_name)) # PEP 8要求标识符的名字用全小写多个单词用下划线连接 # 但是部分程序员和公司更倾向于使用驼峰命名法(驼峰标识) def watch_movie(self): if self.age < 18: print('%s只能观看《熊出没》.' % self.name) else: print('%s正在观看岛国爱情大电影.' % self.name)

python中访问类型只有两种一种是私有的一种是公有的 

PS:如果希望属性是私有的,在给属性命名时可以用两个下划线作为开头 

 但是,Python并没有从语法上严格保证私有属性或方法的私密性,它只是给私有的属性和方法换了一个名字来妨碍对它们的访问,事实上如果你知道更换名字的规则仍然可以访问到它们但是在实际开发中并不建议将属性设置为私有的因为这会让子类无法访问,所以大部分命名会让属性名以单下划线开头来表示属性是受保护的

一个简单的钟表:

from time import sleep
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._secound = 0
self._minute += 1
if self._minute == 60:
self._minute = 0
self._hour += 1
if self._hour == 24:
self._hour = 0
def show(self):
return '%02d:%02d:%02d' % \
(self._hour,self._minute,self._second)

def main():
clock = Clock(23,59,58)
while True:
print(clock.show())
sleep(1)
clock.run()
if __name__ == '__main__':
main()

PS:上面代码敲出来直接复制过来了,要想看的话自己注意排版嗷 

定义一个类描述平面上的点并提供移动点和计算到另一个点距离的方法。

from math import sqrt


class Point(object):

def __init__(self, x=0, y=0):
"""一样的初始化
:param x :横坐标
:param y :纵坐标
"""
self.x = x
self.y = y

def move_to(self, x, y):
"""移动到指定目标
:param x :新的横坐标
:param y :新的纵坐标
"""
self.x = x
self.y = y

def move_by(self, dx, dy):
"""移动指定的增加量
:param dx :横坐标
:param dy :纵坐标
"""
self.x += dx
self.y += dy

def distance_to(self, other):
"""计算与另一个点的距离
:param other:另一个点
"""
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)) PS:艹Python甚是严格。我这行的代码就因为少打了一个下划线就给我错误的结果,属是严格,记得很牢了,淦


def main():
p1 = Point(3, 5)
p2 = Point()
print(p1)
print(p2)
p2.move_by(-1, 2)
print(p2)
print(p1.distance_to(p2))


if __name__ == '__main__':
main()

猜你喜欢

转载自www.cnblogs.com/linQingxuan/p/11893978.html