Python基础刻意训练——DAY10

Python基础刻意训练——DAY10

学习内容
主要内容:类与对象
前言

类的存在使得整个程序得到了良好的封装,同时,使得程序可以直接进行调用,而不是重复去书写以前的代码。

  • 类具有属性(静态)与方法(动态)

创建类的基本格式:

class name:
	##属性
	属性名=相关数值
	##方法
	def 函数名(变量):
		函数体

代码示例:

class Lsgo:  ##类名
    ###属性
    number=259
    location = 'NCEPU'
    blief = 'study'
    shell = True
    ###方法
    def exersize(self):
        print("python基础刻意训练")
    def forward(self):
        print("输出倒逼输入")
        
tt=Lsgo()
tt.exersize()
print(tt.blief)
  • 面向对象(orientation objection)的特征:
  1. 封装性

例如:列表中的方法的使用——直接使用,而不出现内部的函数

  1. 继承性

代码示例:

class Mylist(list):
    pass
a=Mylist()
a.append(15)
a.append(49)
a.append(99)
for each in a:
    print(each)

基本格式:class 类名-子类(父类)
子类继承父类,覆盖的是子类的方法,对于父类不受影响

class Parent:
    def hello (self):
        print("dad on doing")
class Child (Parent):
    def hello(self):
        print("child on doing")
p = Parent()
p.hello()
c=Child()
c.hello()
  1. 多态性:不同对象对于同一方法响应不同的行动
    代码示例:
class A:
    def fun(self):
        print('我是1590')
class B:
    def fun(self):
        print("8888")
a=A()
b=B()
a.fun()
b.fun()
  • 关于self的认识:——this指针

代码示例:

class ball:
    def setName(self,name):
        self.name=name
    def kick(self):
        print("我叫%s,该死的,谁踢我..." % self.name)
a=ball()
b=ball()
c=ball()
a.setName("球A")
b.setName("球B")
c.setName("土豆")
a.kick()
c.kick() 

参考链接:https://www.cnblogs.com/wangjian941118/p/9360471.html

  • 公有变量与私有变量

name mangling(名字重整):
定义私有变量只需要在变量名或者是函数名前面加上两个’__'下划线,那么就会变成私有变量

代码与相关示例:

获取函数
class person():
    __name="LSGO"
    def getname(self):
        return self.__name
p=person()
print(p.getname())
print(p._person__name)

注:Python的私有变量机制伪私有机制(无权限控制):p.__类名__name---- >找到该变量

  • 一些相关的BIF

issubclass(class,classinfo)
判断后者是否是前者的子类
注:
1.一个类被认为是自身的子类
2.classinfo可以使类对象组成的元组,只要class是其中的任何一个候选类的子类,就返回True
3.object:所有类

另外一些常用BIF:

BIF含义
getattr(object, name[, default])返回一个对象属性值
setattr(object, name, value)用于设置属性值,该属性不一定是存在的
delattr(object, name)delattr 函数用于删除属性
hasattr(object, name)判断对象是否包含对应的属性
注意:name一定要有字符
isinstance(object,classinfo)object是否是classinfo的实例

property:新式类中返回属性值
class property([fget[, fset[, fdel[, doc]]]])
代码相关示例:

class C:
    def __init__(self,size=10):
        self.size=size
    def getSize(self):
        return self.size
    def setSize(self,value):
        self.size=value
    def delSize(self):
        del self.size
    x=property(getSize,setSize,delSize)

参考链接:https://www.cnblogs.com/phpper/p/10618775.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值