我想要一個函式,你可以在其中輸入一個字串,并且這個字串可以在類中重用。這是我試過,但我不能讓variable全域外部使用它function在class
測驗.py
from Moduletest import Test
Test().set_string("Hello")
模塊測驗.py
class Test():
def set_string(self, target_string):
global string
string = target_string
print(string)
zeta = string
uj5u.com熱心網友回復:
您不需要在此處使用全域修飾符。您需要的是通過使用self物件來參考物件實體,如下所示:
class Test:
zeta = None
def __init__(self):
self.string = None
def set_string(self, target_string):
self.string = target_string
print(self.string)
Test.zeta = self.string
t = Test()
t.set_string('abc')
uj5u.com熱心網友回復:
通常強烈建議不要在 python 中創建一個全域變數。我建議使用您的類的實體,然后將字串分配給該類的屬性。
class Test:
my_string: str
def__init__(self, target_string):
self.my_string = target_string
def get_string(self):
return self.my_string
然后你可以my_string像這樣訪問
my_class = Test('Hello World')
the_string = my_class.get_string()
print(the_string) # Prints 'Hello World'
# Or like this
print(my_class.my_string) # Prints 'Hello World' as well
在此處提出問題時,請描述您要達到的目標。在這種情況下,您應該指定為什么要嘗試使字串全域化,以便其他人可以推薦替代方案,或者更好地理解問題。
uj5u.com熱心網友回復:
要操作測驗類中定義的靜態變數,您可以查看下面的應用程式。這樣就可以觀察到資料成員和靜態變數的區別了。
class Test:
zeta = "" # static variable definition
@classmethod # constructor method
def __init__(self, string):
self.string = string
@classmethod # member method
def getString(self):
return self.string
@classmethod # member method
def setString(self, value):
self.string = value
@staticmethod # static method
def set_static_string(self, target):
self.setString(target) # set data member
Test.zeta = target # set static variable
firstTestObject = Test("test") # create object
Test.set_static_string(firstTestObject, "first") # set static variable
print("1: ", Test.zeta) # get static variable
print("2: ", firstTestObject.zeta) # get static variable
secondTestObject = Test("test") # create object
Test.set_static_string(secondTestObject, "second") # set static variable
print("3: ", Test.zeta) # get static variable
# The same value is printed as static variables are common to every object.
print("4: ", firstTestObject.zeta)
print("5: ", secondTestObject.zeta)
此應用程式產生以下輸出:
1: first
2: first
3: second
4: second
5: second
uj5u.com熱心網友回復:
Self 是您在實體化類中參考函式變數的變數。
使用建構式實體化您的類并傳遞引數的方法是這樣的。
`class Test:`
`def __init__(self,arg1)`
`self.var1 = arg1`
你像這樣實體化類 Test my_instance=Test("my_string")
您可以通過.這樣的方式訪問 var1 。 my_instance.var1
在此處閱讀手冊https://docs.python.org/3/tutorial/classes.html
uj5u.com熱心網友回復:
也許嘗試在Moduletest.py 中執行此操作:
class Test:
def __init__(self, target_string):
self.string = target_string
def getStr(self):
return self.target_string
然后在main.py:
from Moduletest import Test
x = Test("Hello")
print(x.getStr) #output: Hello
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/409625.html
標籤:
