Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to set global const variables in python

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()

?

like image 636
gen Avatar asked Aug 14 '13 06:08

gen


People also ask

Can const be a global variable?

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.

How do you create a global constant?

Creating a Global Constant 1. From the Configuration Console, click Build > Global Constants to open the Global Constants workspace. 2. Click Add.


Video Answer


2 Answers

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

like image 88
John La Rooy Avatar answered Oct 25 '22 19:10

John La Rooy


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

like image 27
chhantyal Avatar answered Oct 25 '22 19:10

chhantyal