python的小知识有哪些

python的小知识有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名、网页空间、营销软件、网站建设、城区网站维护、网站推广。

1、为什么要写 if __name__ == '__main__':

class User:def __init__(self):print('test import')

var_user = User()

运行时会打印出

import Test#test import

2、property动态属性,把函数变成属性描述符

#把函数变成属性描述符from datetime import date, datetimeclass User:def __init__(self, name, birthday):self.name = nameself.birthday = birthdayself._age = 0    @property    def age(self):'''该方法只能取值'''        return datetime.now().year - self.birthday.year@age.setter    def age(self, var_value):
        ''' 设置值 '''self._age = var_valueif __name__ == '__main__':
    var_user = User('tom', date(year=1985, month=2, day=6))print(var_user.age) #36    var_user.age = 100    print(var_user._age) # 100

3、属性描述符

属性描述符可以对对象的属性进行校验,属性描述符共涉及三个魔法函数,分别为__get__ 、__set__、 __delete__,实现一个即为属性描述符。

实现了__get__ 、__set__称为数据描述符,其余称之为非数据属性描述符

属性的调用顺序:

1:如果var_age是出现在类或其基类的__dict__中,且var_age是数据描述符,则调用__get__

2:如果var_age是出现在对象(obj)的__dict__中,那么直接返回obj__dict__['var_age']

3:如果var_age出现在类或者基类的__dict__中,如果var_age是非数据描述符调用__get__方法否则返回__dict__['var_age']

4:如果类有__getattr__方法,调用__getattr__方法,否则抛出AttributeError

import numbersclass IntField:def __get__(self, instance, owner):return self.valuedef __set__(self, instance, value):if not isinstance(value, numbers.Integral):raise ValueError('int value')self.value = valuedef __delete__(self, instance):passclass NoDate:def __get__(self, instance, owner):return self.valueclass TestUser:
    var_age = NoDate()class User:
    var_age = IntField()if __name__ == '__main__':
    var_user = User()
    var_user.var_age = 10    print(var_user.__dict__)
    var_user.__dict__['var_age'] = 50    print(var_user.var_age) #10    print(User.__dict__)


    var_user_test = TestUser()
    TestUser.var_age = 1    print(TestUser.var_age)#1    var_user_test.var_age = 50    print(var_user_test.__dict__)
    var_user_test.__dict__['var_age'] = 100    print(var_user_test.var_age)#100    print(TestUser.__dict__)

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。


网页题目:python的小知识有哪些
分享地址:http://scyanting.com/article/pdjjhg.html