List Object

class Bloco:
    def __init__(self, type = None, tamanho = None):
        self.type = type
        self.tamanho = tamanho
    def __str__(self):
        return str(self.tamanho)
class Memoria:
    listaGlobal = []
    def __init__(self):
        print ('Memoria criada...')
    def guardarBlocos(self,Bloco):
        self.listaGlobal.append(Bloco)
    def __str__(self):
        return str(self.blocos)

Memoria1 = Memoria()
qBlocos = int(input("Entre com quantidade de blocos:"))
for i in range(0, qBlocos):
    xTam = int(input())
    Memoria1.guardarBlocos(Bloco("free",xTam)) 
/*Como posso imprimir os valores dados para os blocos*/

Qual é a duvida?

Acho que deveria ser

    def __str__(self):
      return str(self.listaGlobal)

já que não existe blocos.

Pra mostrar tente com print(Memoria1)

Kronal a seguinte saida.
‘Memoria’ object has no attribute ‘blocos’

Como a lista é uma atributo da classe tentei dar um print(Memoria.listGlobal), mas deu saída [<main.Bloco object at 0x000001EA34D694A8>, <main.Bloco object at 0x000001EA34D69588>, <main.Bloco object at 0x000001EA34D697B8>] acredito que seja porque listglobal guarda objetos do tipo Bloco, não quero utilizar str dentro da classe bloco pois não precisarei desse método, de que forma posso contorna este problemas. pois preciso mostrar ao usuário o tamanho dos blocos criados, mas também preciso desses blocos guardados em uma lista, pois farei operações com eles.

listaBlocos = []
listaProc = []
blockSum = 0
globalsPid = []
for i in range(100,400,17):
    globalsPid.append(i)
random.shuffle(globalsPid)
##aqui eu sorteio varios pid e embaralho
##nada de importante para o codigo kkk
#####################################################################
class Bloco:
    def __init__(self,tamanho = None, type = "free"):
        self.type = type
        self.tamanho = tamanho
    def statusBLoco(self):
        if (self.type == "free"):
            return 0
        if (self.type == "used"):
            return 1
        if(self.type == "fit"):
            return 2
        return -1
    def alterStatus(self, status):
        self.type = status
    def retornaBlock(self):
        return self.tamanho
    def __str__(self):
        return str(self.tamanho) + "" +str(self.type)
##################################################
class PCB:
    def __init__(self, pid = None, prior = 0, status = "ready"):
        self.pid = globalsPid[i]
        self.prior = prior
        self.status = status
##como a gente não vai trabalhar como escalonamento para cpu entao o status 
##sempre vai ser ready
#####################################################
class Processo(PCB):
    def __init__(self,tamProc):
        print("Criando Processo:")
        PCB.__init__(self)
        self.status = "ready"
        self.tamProc = tamProc
    def returnSize(self):
        return self.tamProc

blocInput = int(input("Quantos Blocos quer Criar:"))
for i in range(0, blocInput):
    tamInput = int(input())
    listaBlocos.append(Bloco(tamInput,))

print("_________________________________")
for j in range(len(listaBlocos)):
    print(listaBlocos[j])

armazenei blocos(objetos) em listasBloco entretando como faco para acessar os metodos agora.
seria algo parecido com isso >>>listaBlocos[i].retornaBLock

Como falei

Olhe meu str ele ta implementado e funcionando mas ele retorna o estado do bloco e o seu tamanho