所以我试图将下面的Java(p5 /P5.js)脚本转换/重新创建为Dynamo中的PythonScript:
到目前为止,我的尝试看起来像这样:
我只想知道我是否正以正确的方式进行操作?我觉得我没有正确执行def init吗?应该是(例如):self.location = location,然后在另一行上描述位置吗? 另外,在处理/ Java脚本中,Particle是一个类,然后在主脚本选项卡中进行引用……所以我可以先写出类Particle然后再执行主代码吗?
非常感谢,我正在尝试学习,任何建议/反馈都会对我有所帮助:)
答案 0 :(得分:0)
我可能错了,但是我觉得您可能需要阅读/学习更多有关面向对象编程(OOP)和python的知识。所以这个答案更多地是关于那些事情。
在python def init 中,方法实际上是一个构造函数。像使用任何其他OOP语言一样,只要不使它变得太复杂,就可以在构造函数中调用函数或方法。
为了回答您的问题并给您反馈:
将废弃的代码留在类中并不总是一个好主意。您可以尝试在 init 方法内部定义宽度和高度,而不用像以前那样定义宽度和高度。这样,您可以在需要时再次使用它们:
def __init__(...):
self.width = Math.Rand()
self.height = Math.Rand()
self.location = Vector.ByTwoPoint(self.width, self.height)
...
当然可以在脚本的其他位置使用您的类:
class Particle:
# your class code here with this level of indentation
# this level of indentation means you are no longer in the class and you can go on with your script
# this might be good place for a do things with your class.
# but you can do the same thing in another script file. Just don't forget to import your class
def do_stuff():
new_particle = Particle(...) # this calls the __init__ method of your class
# lastly you should call your functions or else you don't have a runnable script
if __name__ == "__main__":
do_stuff()
如果我是对的,那么是一个不错的起点:https://www.python.org/doc/
此外,请不要复制屏幕快照,以后再复制并粘贴您的代码。这样回答起来更容易。