我这个代码就是一个简单的在第一个文件中定义类,在第二个文件中定义函数,并且调用第一个文件中的类,遇到的问题就是第一个文件中的变量,不会因为后面函数给他赋值而改变,他一直都是初始化的值,所以在第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()
麻烦看一下,整个代码是可以跑,就是上面的问题,谢谢
self.bool = 0
这个构造函数值你给出的就是固定的,所以第二个文件每次调用的时候都是一样的,self.bool 也是需要构造函数的时候传值