Python 在类的另一个方法中使用了类的属性

Python 在类的另一个方法中使用了类的属性,python,python-3.x,Python,Python 3.x,我有一个提供元组列表(self.path)的类Laby,还有一个创建项的类项 我正在使用random.sample构建一个方法,其中项目是随机放置的。我想使用laby类中的列表,而不是set_position方法中的属性my_list 这是我的唇: class Laby: def __init__(self): self.paths = [] # it received some data from another function.. inside a list i

我有一个提供元组列表(self.path)的类Laby,还有一个创建项的类项

我正在使用random.sample构建一个方法,其中项目是随机放置的。我想使用laby类中的列表,而不是set_position方法中的属性my_list

这是我的唇:

class Laby:

    def __init__(self):

        self.paths = [] # it received some data from another function.. inside a list is created of tuples 
Random pos:  [(2, 4)] Name:  Object
这是我的物品类别

 class Item:

 # add item to path / randomize pos / 
    def __init__(self, title):
        self.title = title
        self.position = (0,0)

    def set_position(self):
        my_liste = [(0, 1),(2,4),(4,2),]  #instead of my list I want to use the path attribute from Laby
        self.position = random.sample(my_liste, 1)


item1 = Item('Object')
item1.set_position()
print('Random pos: ', item1.position , 'Name: ',item1.title)

根据我对您问题的理解,我提出以下代码:

import random

class Laby(object):
    def __init__(self):
        self.paths = [(0, 1),(2,4),(4,2)]

class Item(Laby):
 # add item to path / randomize pos /
    def __init__(self, title):
        self.title = title
        self.position = (0,0)

    def set_position(self):
        super(Item, self).__init__()
        self.position = random.sample(self.paths, 1)


item1 = Item('Object')
item1.set_position()
print('Random pos: ', item1.position , 'Name: ',item1.title)

根据我对您问题的理解,我提出以下代码:

import random

class Laby(object):
    def __init__(self):
        self.paths = [(0, 1),(2,4),(4,2)]

class Item(Laby):
 # add item to path / randomize pos /
    def __init__(self, title):
        self.title = title
        self.position = (0,0)

    def set_position(self):
        super(Item, self).__init__()
        self.position = random.sample(self.paths, 1)


item1 = Item('Object')
item1.set_position()
print('Random pos: ', item1.position , 'Name: ',item1.title)

我不这么认为,这是你想要的还是不想要的

如果我错了,请帮助我在评论中找到答案

您可以将
Loby
实例传递给
set\u position
方法(如果此方法可以接受参数)

随机导入
拉比班:
定义初始化(自):
self.path=[]
def set_路径(自身,路径):
self.path=路径
def get_路径(自身):
返回自我路径
类别项目:
定义初始(自我,标题):
self.title=标题
self.position=(0,0)
def设置位置(自身、实验室):
my_liste=laby.get_路径()
self.position=random.sample(我的列表,1)
路径=[(0,1),(2,4),(4,2),]
#初始化laby
laby1=Laby()
标签1.设置路径(路径)
item1=项目('对象')
项目1.设置位置(标签1)
打印('Random pos:',item1.position,'Name:',item1.title)
输出:

class Laby:

    def __init__(self):

        self.paths = [] # it received some data from another function.. inside a list is created of tuples 
Random pos:  [(2, 4)] Name:  Object

我不这么认为,这是你想要的还是不想要的

如果我错了,请帮助我在评论中找到答案

您可以将
Loby
实例传递给
set\u position
方法(如果此方法可以接受参数)

随机导入
拉比班:
定义初始化(自):
self.path=[]
def set_路径(自身,路径):
self.path=路径
def get_路径(自身):
返回自我路径
类别项目:
定义初始(自我,标题):
self.title=标题
self.position=(0,0)
def设置位置(自身、实验室):
my_liste=laby.get_路径()
self.position=random.sample(我的列表,1)
路径=[(0,1),(2,4),(4,2),]
#初始化laby
laby1=Laby()
标签1.设置路径(路径)
item1=项目('对象')
项目1.设置位置(标签1)
打印('Random pos:',item1.position,'Name:',item1.title)
输出:

class Laby:

    def __init__(self):

        self.paths = [] # it received some data from another function.. inside a list is created of tuples 
Random pos:  [(2, 4)] Name:  Object

set_position可以将Laby的一个实例作为参数,并从中获取列表?而set_position会将laby作为参数吗?set_position可以将laby的一个实例作为参数并从中获取列表?而set_位置将以laby为参数?