php程序员学python要多久_php程序员学习python3学习第十八天

1,类中,自己访问自己的成员,除了类中的方法,例如 类.属性  ,方法的话使用实例化类后的对象访问

2,类的 普通字段,静态字段,普通方法,静态方法,类方法,普通特性

#-*- coding: utf-8 -*-#类的静态属性,方法,静态方法

classTest:#静态属性

country = '中国'

def __init__(self, name):

self.name=name#方法

deffunc1(self):print('方法')#静态方法,使用装饰器

@staticmethoddeffunc2():print('静态方法')#类方法

@classmethoddeffunc3(cls):print('类方法')#将方法伪造成字段, 用来获取end值

@propertydefend1(self):

temp= 'your name %s'%self.namereturntemp#用来设置end值

@end1.setterdefend1(self,value):#pass

self.name =value#访问类中的静态属性 直接使用类来进行访问

print(Test.country)#访问类中的方法,先实例化

obj = Test('rrr')

obj.func1()#访问类方法

Test.func3()#访问伪造字段的方法

print(obj.end1)

obj.end1= 'rcl'

print(obj.end1)

3,面向对象成员修饰符

#-*- conding: utf-8 -*-#面向对象成员修饰符

classTest:

os= 'haha'

#字段前加两个下划线表示为私有属性,在类中可以访问

__os = 'wowo'

def __init__(self):pass

deffunc1(self):print(self.__os)#私有的方法

def __func2(self):print('__func2')deffunc3(self):

self.__func2()#私有的静态方法

@staticmethoddef __func4():print('__func4')deffunc5(self):

Test.__func4()

obj=Test()print(obj.os)

obj.func1()

obj.func3()

obj.func5()

4,如果非要在外部访问类中的私有属性可以使用  对象._类__私有属性   不建议使用

5,对象直接加括号,执行类中的call方法

#-*- coding: utf-8 -*-#类中的call方法

classTest:def __init__(self):print('init')def __call__(self, *args, **kwargs):print('call')return 1obj=Test()

obj()#执行__call__

Test()() #执行__call__

r =Test()()print(r)

6,对象使用中括号调用类中不存在的属性时,会自动执行 __getitem__ 方法

7,对象使用中括号给类中不存在的属性赋值时,会自动执行__setitem__方法

8,对象使用中括号删除类中不存在的属性时,会自动执行__delitem__方法

classTest1:def __getitem__(self, item):print(item)def __setitem__(self, key, value):print(key, value)def __delitem__(self, key):print(key)

obj1=Test1()

obj1['sss']

obj1['xxx'] = 'aaaa'

del obj1['aaa']

9,类的特殊成员 __dict__ 获取对象中存在什么

10,对象呗迭代,则是在自动迭代其中的__iter__方法

classTest3:def __iter__(self):yield 1

yield 2

yield 3obj3=Test3()for item inobj3:print(item) #1,2,3

11,错误异常,捕获异常  try except Exception as e

#-*- coding: utf-8 -*-#错误异常

try:print(a)exceptException as e:print('您的错误:',e)

12,异常的完整结构

'''异常的完整结构

try:

pass

except Exception as e:

pass

else:

pass

finally:

pass'''

13,使用raise主动触发异常

try:print('123')raise Exception('出错le')exceptException as e:print(e)

14,断言 assert  如果条件成立那么就ok了,若不成立,那就报错  一般用在测试时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值