Python;使用方法创建的实例变量
Python; working with instance variable created by a method
说到 classes,我还是个初学者。
我有一个 class 定义如下(为此 post 进行了简化)
class worksheet:
def __init__(self, filename):
self.filename = (filename).strip().replace(" ","")
def idMaker(self):
number = '{:05d}'.format(random.randrange(1,99999))
sheetId = self.filename+str(number)
我希望能够通过说出如下内容(同样,这可能是完全不正确的)来为每个实例获取 'sheetID':
newSheet = worksheet('testsheet')
id = newSheet.sheetID
这当然行不通,但我不确定我需要做什么才能让它起作用。
我想确保 ID 保持不变并且不会用新的随机数重新创建自己。
提前致谢
sheetId
变量位于 class 的 idMaker
方法中,因此您无法使用点运算符访问它。如果您尝试为 class 的实例创建自定义 ID,我建议您在 class 构造函数 __init__
方法中执行此操作,以便在创建对象时对其进行分配。或许可以考虑以下几点:
class worksheet:
def __init__(self, filename):
self.filename = (filename).strip().replace(" ","")
number = '{:05d}'.format(random.randrange(1,99999))
self.sheetID = self.filename+str(number)
只需在 __init__
中生成并分配 id
。一般来说,作为 class 的用户,您不想关心自己生成 id
。就您而言,实例化 Worksheet
为您提供了一个完整的可用对象。
import random
class Worksheet(object):
def __init__(self, filename):
self.filename = filename.strip().replace(' ','')
number = '{:05d}'.format(random.randrange(1,99999))
self.sheet_id = self.filename + str(number)
sheet = Worksheet(' some filename with spaces ')
print(sheet.filename)
print(sheet.sheet_id)
会输出
somefilenamewithspaces
somefilenamewithspaces68237
说到 classes,我还是个初学者。
我有一个 class 定义如下(为此 post 进行了简化)
class worksheet:
def __init__(self, filename):
self.filename = (filename).strip().replace(" ","")
def idMaker(self):
number = '{:05d}'.format(random.randrange(1,99999))
sheetId = self.filename+str(number)
我希望能够通过说出如下内容(同样,这可能是完全不正确的)来为每个实例获取 'sheetID':
newSheet = worksheet('testsheet')
id = newSheet.sheetID
这当然行不通,但我不确定我需要做什么才能让它起作用。
我想确保 ID 保持不变并且不会用新的随机数重新创建自己。
提前致谢
sheetId
变量位于 class 的 idMaker
方法中,因此您无法使用点运算符访问它。如果您尝试为 class 的实例创建自定义 ID,我建议您在 class 构造函数 __init__
方法中执行此操作,以便在创建对象时对其进行分配。或许可以考虑以下几点:
class worksheet:
def __init__(self, filename):
self.filename = (filename).strip().replace(" ","")
number = '{:05d}'.format(random.randrange(1,99999))
self.sheetID = self.filename+str(number)
只需在 __init__
中生成并分配 id
。一般来说,作为 class 的用户,您不想关心自己生成 id
。就您而言,实例化 Worksheet
为您提供了一个完整的可用对象。
import random
class Worksheet(object):
def __init__(self, filename):
self.filename = filename.strip().replace(' ','')
number = '{:05d}'.format(random.randrange(1,99999))
self.sheet_id = self.filename + str(number)
sheet = Worksheet(' some filename with spaces ')
print(sheet.filename)
print(sheet.sheet_id)
会输出
somefilenamewithspaces
somefilenamewithspaces68237