Python学习的第N天
类和对象
一、定义类
class 类名 :
变量
方法
1.1 def 方法名(self,参数):
内容 (self.name=name)
注意:self不是参数,而是必须带的,相当于指针
1.2 构造函数
class B:
def _init_(self,name)
self.name=name;
def kk(self)
plant(self.name)
t=B('sss')
t.kk() 结果为sss
1.3 私有符号 只需要在前面加__,两个下划线代表私有
二、声明对象
t=类名()
t.方法(参数)
三、继承
class Mylist(list):
def _init_(self):
super()._init_()
self.xx=xx
pass
上面的 Mylist就继承了list,可以使用list的各种方法
四、组合
class A:
...
class B:
...
class C:
def _init_(self,x,y)
self.a=A(x)
self.b=B(y)
五、一些BIF
5.1、 issubclass(A,B)
判断A是不是B的子类 返回结果为bool型
5.2、isinstace(A,B)
判断A是不是B的对象
5.3、hasattr(A,'X')
判断X是不是A的一个属性
5.4、getattr(A,'X')
判断X是不是A的一个属性,并返回X的值
5.5、setattr(A,'Y',value)
判断Y是不是A的一个属性,如果有,则将其值设置为value,如果没有同样新建一个属性Y并赋值
5.6、delattr(A,'Y')
判断Y是不是A的一个属性,如果有则删除
5.7、property(get,set,del)
通过属性去设置属性,里面的三个方法是自己写的,如
class A:
def _init_(self,size=10)
self.size=size
def get(self)
return self.size
def set(self,size)
self.size=size
def del(self)
del self.size
c1=A()
c1.x=11 通过设置x的值去调用set函数,从而改变size的值
六、魔法方法
6.1、_new_(cls,string)
class A(str):
def _new_(cls,string):
string=string.upper()
return str._new_(cls,string)
a=A('sss')
a 结果为SSS
6.2、_del_(self)
class A():
def _init_(self)
print("XXX")
def_del_(self)
print("YYY")
a=A() b=a c=b
注意只有所有指向A的对象都被销毁才会调用_del_(self)