python 实例属性和类属性


如何在一个类中定义一些常量,每个对象都可以方便访问这些常量而不用重新构造?

第一个问题,在 Python 的类里,你只需要和函数并列地声明并赋值,就可以实现这一点,

例如这段代码中的 WELCOME_STR。一种很常规的做法,是用全大写来表示常量,

因此我们可以在类中使用 self.WELCOME_STR ,或者在类外使用 Entity.WELCOME_STR ,

来表达这个字符串。


在类中 我们使用self.WELCOME_STR 通过实例属性访问

node2:/root/20200507#cat test.py 
# -*- coding:utf-8 -*-
# !/usr/bin/python
class Document():
    WELCOME_STR = 'Welcome! The context for this book is {}.'

a=Document()
print a
print type(a)
print dir(a)
print a.WELCOME_STR
node2:/root/20200507#python test.py 
<__main__.Document instance at 0x7f33bc36bd40>
<type 'instance'>
['WELCOME_STR', '__doc__', '__module__']
Welcome! The context for this book is {}.


通过类属性访问:


node2:/root/20200507#cat test.py
# -*- coding:utf-8 -*-
# !/usr/bin/python
class Document():
    WELCOME_STR = 'Welcome! The context for this book is {}.'

node2:/root/20200507#cat a1.py 
import test
print test
print type(test)
print dir(test)
print test.Document.WELCOME_STR
node2:/root/20200507#python a1.py 
<module 'test' from '/root/20200507/test.pyc'>
<type 'module'>
['Document', '__builtins__', '__doc__', '__file__', '__name__', '__package__']
Welcome! The context for this book is {}.
原文地址:https://www.cnblogs.com/hzcya1995/p/13348378.html