【问题标题】:How To Get Class Variables into Static Methods?如何将类变量放入静态方法?
【发布时间】:2021-04-13 15:24:06
【问题描述】:

所以我有main.py

import os
import json

class Create_project:
    def __init__(self,version):
        self.version = version        
    
    @staticmethod
    def Name(cls):
        project_name = cls
    
    @staticmethod
    def Res(cls):
        if cls == True:
           os.chdir('Project')
           os.mkdir(f"gyy_RP")
        else:
            pass

if __name__ == "__main__":
    Create_project()

&project.py:

import neptune_lib

neptune_lib.Create_project("1.16.210")
neptune_lib.Create_project.Name("My Addon")
neptune_lib.Create_project.Res(True)

现在我想创建一个由用户命名的目录,但我无法将project_name 获取到Res 函数。

那么我如何让project_name 进入ResFunction ???

【问题讨论】:

    标签: python class static


    【解决方案1】:

    为什么要使用静态方法?把所有东西都做成类方法就可以轻松搞定了。

    编辑: 将您的代码更改为

    import os
    import json
    
    class Create_project:
        def __init__(self,version):
            self.version = version
            self.project_name = None        
        
        def Name(self, cls):
            self.project_name = cls
        
        def Res(self, cls):
            if cls == True:
               os.chdir('Project')
               os.mkdir(str(self.project_name))
            else:
                pass
    
    if __name__ == "__main__":
        Create_project()
    

    然后调用它:

    import neptune_lib
    
    a = neptune_lib.Create_project("1.16.210")
    a.Name("My Addon") 
    a.Res(True)
    

    【讨论】:

    • 这个错误突然出现:``` TypeError: Name() 需要 1 个位置参数,但给出了 2 个```
    • 非常感谢!我一直在挣扎?
    猜你喜欢
    • 2011-10-30
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 2010-10-13
    • 1970-01-01
    • 2013-09-08
    • 2017-04-16
    相关资源
    最近更新 更多