学习内容
主要内容:类与对象
前言:
类的存在使得整个程序得到了良好的封装,同时,使得程序可以直接进行调用,而不是重复去书写以前的代码。
创建类的基本格式:
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)
例如:列表中的方法的使用——直接使用,而不出现内部的函数
代码示例:
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()
class A:
def fun(self):
print('我是1590')
class B:
def fun(self):
print("8888")
a=A()
b=B()
a.fun()
b.fun()
代码示例:
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---- >找到该变量
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