python初学者遇到的基础问题

我这个代码就是一个简单的在第一个文件中定义类,在第二个文件中定义函数,并且调用第一个文件中的类,遇到的问题就是第一个文件中的变量,不会因为后面函数给他赋值而改变,他一直都是初始化的值,所以在第2个文件中遇到问题,它的值一直是初始化的值并不会改变,所以就想问一下,怎么让第一个文件类中的self_bool的值在第二个文件中会因为调用不同的对象而改变,而不是一直是初始化的值
这是第一个文件的代码:

class ProgrammingLanguage:

    def __init__(self,field,typing,reflection,year):
        self.field = field
        self.typing = typing
        self.reflection = reflection
        self.year = year
        self.bool = 0

    def is_dynamic(self):
        if self.field == 'Python' or 'Ruby':
            self.bool = True
            print(self.bool)
        elif self.field == 'Java' or 'C++' or 'Visual Basic':
            self.bool = False
            print(self.bool)
        else:
            print('Input does not exist! Please check your input!')

    def __str__(self):
        print ("{},Dynamic Typing,Reflection={},First appeared in {} ".format(self.typing, self.bool, self.year))

这是第二个文件

from language.programming_language import ProgrammingLanguage


def main():
    ruby = ProgrammingLanguage("Ruby", "Dynamic", True, 1995)
    python = ProgrammingLanguage("Python", "Dynamic", True, 1991)
    visual_basic = ProgrammingLanguage("Visual Basic", "Static", False, 1991)

    print('The dynamically typed languages are:')

    if ruby.bool is True:
        print(ruby.field)

    if python.bool is True:
        print(python.field)

    if visual_basic.bool is True:
        print(visual_basic.field)


main()

麻烦看一下,整个代码是可以跑,就是上面的问题,谢谢

img

self.bool = 0
这个构造函数值你给出的就是固定的,所以第二个文件每次调用的时候都是一样的,self.bool 也是需要构造函数的时候传值