python第七天学习总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python第七天学习总结相关的知识,希望对你有一定的参考价值。
1.接口类和抽象类是一种:是一种规范,写代码时的规范
class QQpay:
def pay(self,money):
print(‘您已经通过qq支付了%s元‘ %money)
class Alipay:
def pay(self, money):
print(‘您已经通过支付宝支付了%s元‘ % money)
class Wechatpay:
def fuqian(self, money): #开发方式不统一
print(‘您已经通微信支付了%s元‘ % money)
from abc import ABCMeta,abstractmethod
class Payrole(metaclass=ABCMeta): # 抽象类或者接口类,制定规范,统一方法名,强制性的规定br/>@abstractmethod
def pay(self): pass
class QQpay(Payrole):
def pay(self,money):
print(‘您已经通过qq支付了%s元‘ %money)
class Alipay(Payrole):
def pay(self, money):
print(‘您已经通过支付宝支付了%s元‘ % money)
class Wechatpay(Payrole):
def pay(self, money):
print(‘您已经通过支付宝支付了%s元‘ % money)
def pay(obj,money):
obj.pay(money)
# a = QQpay()
# b = Alipay()
c = Wechatpay()
**# pay(a,100) # 归一化设计,统一你的支付方式
# pay(b,1200)
pay(c,10000) *
- 多态:python一些相似的方法,也叫鸭子类型,Python默认就支持多态,自带多态
#相似的方法
class Str:
def index(self):
print(‘通过元素找索引‘)
class List:
def index(self):
print(‘通过元素找索引‘)
class Tuple:
def index(self):
print(‘通过元素找索引‘
3.封装:广义封装和狭义封装
广义封装:封装到对象中的属性是一种封装
class Person:
country = ‘China‘
def init(self,name,age):
self.name = name
self.age = age
def func(self):
print(self.name)
p1 = Person(‘aa‘,1000) #广义封装
p2 = Person(‘bb‘,10000) #广义封装
狭义封装:私有性封装,分为私有静态字段(私有静态变量),私有普通字段(私有对象属性),私有方法
class Person:
country = ‘China‘ # 公有静态字段(公有静态变量)
- name = ‘oldboy‘ # 私有静态字段(私有静态变量)*
- age = 1000 # 私有静态字段(私有静态变量),在类的外部不能调用,派生类也不可访问
def func1(self):*
return self.__name #私有静态字段在类的内部可以访问
- age = 1000 # 私有静态字段(私有静态变量),在类的外部不能调用,派生类也不可访问
4.字段,属性,方法等
普通方法:一般是由对象调用
类方法:一般是由类名调用,有些情况,对于类内部的方法,无需对象直接调用,而类名直接调用即可
态方法:不需要传入对象,和类名,直接调用即可
class People:
def init(self, name, weight, height):
self.name=name
self.weight=weight
self.height=height
@property #将bmi(self)方法伪装成属性
def bmi(self):
return self.__weight / self.__height**2
p1 = People(‘aa‘, 95,1.83)
print(p1.bmi)
# property 属性将你的一些方法伪装成属性,虽然在代码上没有什么提高,让其看起来更合乎情理.
5.其他成员及方法
isinstance() 对象是否属于这个类,或者这个类血缘关系.
issubclass() 判断 第一类是第二个类的后代
5.反射
getattr() #获取值
setattr() #增加或者修改
以上是关于python第七天学习总结的主要内容,如果未能解决你的问题,请参考以下文章