73285


`hoge`と`huga`という2つのクラスのそれぞれのメソッドで数字`num`を共有して使いたいです。どのようにすれば2つのクラスのメソッドで共通して使えるでしょうか？  
グローバル変数を使うべきでしょうか？

[code]

    class hoge():
      def foo(self):
        print(num) # Error
    
    class huga():
      def bar(self):
        print(num) # Error
    
[/code]


CC BY-SA 4.0
2021-01-14T04:33:56.833
73282
2021-01-16T08:15:23.833
2021-01-16T08:15:23.833
43413
43413
question
python python3
2つ以上のクラスで共通して1つの変数を使いたい


2つのオプションがあります：

  * クラスでオブジェクトを開始してから、そのオブジェクトで目的のメソッドを呼び出します
  * 使用する [@classmethod](http://docs.python.org/library/functions.html#classmethod) 関数をクラスメソッドに変換するには

例:

[code]

    class A(object):
        
        def a1(self):
            print(num)
    
        @classmethod
        def a2(cls):
            """ This a classmethod. """
            print "Hello from class A"
    
    class B(object):
        def b1(self):
            print A().a1() # => prints 'Hello from an instance of A'
            print A.a2() # => 'Hello from class A'
    
[/code]

または、必要に応じて継承を使用します

[code]

    class Foo(object):
        def __init__(self):
            self.x = 42
    
    class Bar(object):
        def __init__(self, foo):
            print foo.x
    
    a = Foo()
    b = Bar(a)
    
    
[/code]


CC BY-SA 4.0
2021-01-14T04:55:46.663
73285
2021-01-14T07:03:30.880
2021-01-14T07:03:30.880
43178
43178
73282
answer