I am building a solution with various classes and functions all of which need access to some global consants to be able to work appropriately. As there is no const
in python, what would you consider best practice to set a kind of global consants.
global const g = 9.8
So I am looking for a kind of the above
edit: How about:
class Const():
@staticmethod
def gravity():
return 9.8
print 'gravity: ', Const.gravity()
?
Global Constants and Global Variables. A constant which is needed in more than one functions can be declared a global constant by declaring it a constant using the reserve word const, initializing it and placing it outside of the body of all the functions, including the main function.
Creating a Global Constant 1. From the Configuration Console, click Build > Global Constants to open the Global Constants workspace. 2. Click Add.
You cannot define constants in Python. If you find some sort of hack to do it, you would just confuse everyone.
To do that sort of thing, usually you should just have a module - globals.py
for example that you import everywhere that you need it
General convention is to define variables with capital and underscores and not change it. Like,
GRAVITY = 9.8
However, it is possible to create constants in Python using namedtuple
import collections
Const = collections.namedtuple('Const', 'gravity pi')
const = Const(9.8, 3.14)
print(const.gravity) # => 9.8
# try to change, it gives error
const.gravity = 9.0 # => AttributeError: can't set attribute
For namedtuple
, refer to docs here
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With