类和正则表达式

面对帝乡的三要素:
封装,继承,多态;
封装

对类的数据的赋值、内部调用对外部的用户都是透明的,这使得类成为一个容器,里面包含着类的数据和方法。

继承

一个类可以派生出子类,这个父类的属性、方法自动被子类继承。

多态

一个接口、多种实现。一个父类派生出不同的子类,且每个子类在继承父类的方法的同时,又对父类的方法做了不同的实现,这就是同一种事物表现出多种形态。

Python核心风格:避免用下划线作为变量名的开始。

因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始。一般来讲,变量名_xxx被看作是“私有的”,在模块或类外不可以使用。当变量是私有的时候,用_xxx 来表示变量是很好的习惯。因为变量名__xxx__对Python 来说有特殊含义,对于普通的变量应当避免这种命名风格。

“单下划线”
“单下划线” 开始的成员变量叫做保护变量,意思是只有类对象和自类对象自己能访问到这些变量。

例子:以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”而导入。

“双下划线”
“双下划线” 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。

例子:以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(foo)代表python里特殊方法专用的标识,如 init()代表类的构造函数。
三维向量的运算:

–coding: gb2312–

‘’’ 三维向量 ‘’’

class vector3:
def init(self, x_ = 0, y_ = 0, z_ = 0): #构造函数
self.x = x_
self.y = y_
self.z = z_

def __add__(self, obj):      #重载+作为加号
    return vector3(self.x+obj.x, self.y+obj.y, self.z+obj.z)

def __sub__(self, obj):      #重载-作为减号
    return vector3(self.x-obj.x, self.y-obj.y, self.z-obj.z)

def __mul__(self,n):         #重载*作为点乘
    return vector3(self.x*n, self.y*n, self.z*n)

def __truediv__(self, obj):  #重载/作为除法
    return vector3(self.x/n, self.y/n, self.z/n)

def __str__(self):
    return str(self.x)+','+str(self.y)+','+str(self.z)

if name == “main”:
n = int(input(“请输入一个标量:”))
a,b,c = map(int,input(“请输入第一个向量:”).split())
v1 = vector3(a,b,c)
a,b,c = map(int,input(“请输入第二个向量:”).split())
v2 = vector3(a,b,c)
print(“两向量的加法:”,v1 + v2)
print(“两向量的减法:”,v1 - v2)
print(“标量与向量的乘法:”,v1 * n)
print(“标量与向量的除法:”,v1 / n)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值