python类class

class,用于创建和管理新对象,python程序的组成单元,逻辑和数据封装的另一种形式,类似与函数和模块。
类特性:多重实例、通过继承定制、运算符重载。


类对象的特性:
1.class语句创造类并将它赋值给变量名。
2.class语句内的赋值语句创造类的属性,class语句的作用域变成类属性的命名空间,类似与模块的全局作用域。
3.类提供了对象的行为,类属性的行为可被实例对象共享,包括def创造的方法。


实例对象的特性:
1.像调用函数那样调用类对象创造新的实例对象。
2.每个实例对象继承类对象的属性并获得自己的命名空间。
3.对方法内self属性做赋值运算会产生实例自己的属性,赋值运算会修改或者创造实例的数据,不会修改类的数据。


属性继承:【object.attribute】从下至上,从左往右。继承是简单的"树"搜索。
属性继承特性:
1.超类列在类开头的括号中。
2.类从它的超类中继承属性。
3.实例会继承所有可读取类的属性。
4.每个object.attribute都会进行全新的搜索。
5.逻辑的修改是通过创建子类而不是修改超类【定制】。


运算符重载:用类写成的对象,截获并响应应用在内置类型上的运算
1.以双下划线命名的方法(_x_)是特殊钩子,提供特定命名的方法去拦截运算。
2.当实例出现在内置运算时,这种方法会自动调用【如实例继承了_add_方法,对象出现在+表达式内时】。
3.类可覆盖多数内置运算。
4.运算符覆盖的方法没有默认值,而且也不需要【类没有定义或继承运算重载方法,那么相应的运算在类实例中并不支持】。
5.运算符可让类与python类型对象相集成。


编写类树:每个class语句生成新的类对象,实例自动连接创造它的类【从下至上,从左往右】。
属性是在class语句中通过赋值语句添加到类中,不是潜入在函数的def语句内。
属性通常在类内,对传给的函数的特殊参数,做赋值运算添加在实例中。
类对象提供行为,是实例对象的工厂;实例对象是程序实际处理的对象;类对象来自语句,实例对象来自调用。
类也可是模块的属性:导入模块中的类【from module import class 、import module ,class  a (module.class)【引用】】
实例:构造函数、方法、运算符重载、子类定制、内省函数

 实例1:

#通过class语句创造三个类对象,两次类调用创造了test和test1两个实例对象,实例记着它的类c,c3也记着它的超类a和b
#类中函数return可有可无,继承时直接调用方法和属性
class a:
    def func(self,list):#def出现在类内成为方法,自动接收第一个参数self【实例名】
        self.L=[x*2 for x in list]#赋值操作,参与实例运算
        return  self.L
    print("class1")
class b:
    print("class2")
class c(a,b):#超类a、b 子类c
    N=5#类的属性
    def getvalue(self,str):#def出现在类内成为方法,自动接收第一个参数self【实例名】
        self.value=str#赋值操作,参与实例运算
        self.value1=c.N#类属性参与赋值操作
        return self.value
class d:pass #空类
test=c()#类对象调用创建实例
test1=c()#类对象调用创建实例
test.getvalue("test")#调用函数【方法】【类属性】、继承
test1.func([1,2,3])#L1=test1.func([1,2,3]);print(L1)==print(test1.L)
print(test.value,test.value1,test1.L,c.N,test.N,test1.N)#test [2, 4, 6] 5 5 5
test.value="change"
test.value1=20
test.N=10#在外部修改实例的属性【也可在内部】,并不影响类对象的属性
test.new="new"#添加实例新属性
print(test.value,test.value1,test.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值