Добавление новых классов в функцию [закрыто]Python

Программы на Python
Anonymous
Добавление новых классов в функцию [закрыто]

Сообщение Anonymous »

Я делаю подсчет калорий только для обучения, как новичок.
Я собираюсь создать определение, в котором я могу выбрать имя (собственное), которое будет зашифровано в классе, вставить в это одно имя значения по порядку. чтобы использовать их позже, но значение, записанное в классе, - это не то, что я пишу как переменную, а просто имя переменной, которую я дал в def.
Я дал переменной def 'новую', позже создав
global x,
x = new

и присваиваем этот x классу как самому себе. Здесь новая переменная — это user1, поэтому я не хочу, чтобы x был user1. Я ожидал, что когда я попытаюсь использовать def из класса, он будет записан как user1, а не x, но наоборот. вот у меня
user1.Body_information()

но там написано:
NameError: name 'user1' is not defined. Did you mean: 'User'?

Хотя бы это сработало, если бы оно было
x.Body_information()

Но я не хочу, чтобы (self) было тем, что я написал в new_user (то, что я не хочу как self), чтобы я мог создавать новые классы с помощью этой функции.
вот класс
А вот функция
Ошибка
В начале Я только что попробовал только с переменной «new», без всяких глобальных x, но тогда это вообще не сработало. Я думал о подсчете количества вызываемых определений и, исходя из количества вызовов, добавлял это число к значению, которое будет занесено в класс. (так что это будет user1 при первом вызове, user2 при втором вызове и т. д.) Но я не чувствую, что способен сделать это, по крайней мере, не один, и, возможно, есть более простой способ сделать это, поэтому заранее спасибо за любую помощь .
Вот весь код:

Blockquote
class User:

def __init__(self, name, weight, height, BMI, gender, age):
self.weight_of_user = weight
self.height_of_user = height
self.BMI_of_user = BMI
self.gender = gender
self.age = age

def Body_information(self):
print ('your weight is ' + str(self.weight_of_user))
print ('your height is ' + str(self.height_of_user))
print ('your BMI is ' + str(self.BMI_of_user))

def new_user(new):

print('Welcome to the calorie counting program')
name = input('choose a name')
gendergiv = input('are you female or male?')
if gendergiv != 'male' and gendergiv != 'female':
print('Please chosse one of the two genders available')
new_user(new)
weightgiv = float(input('Please insert your weight'))
heightgiv = float(input('Please insert your height (in meters)'))
agegiv = int(input('Please insert your age'))
BMIgiv = int(weightgiv / (heightgiv * heightgiv))
global x
x = new
x = User(name = name, weight = weightgiv, height = heightgiv, BMI = BMIgiv, gender = gendergiv, age = agegiv)

new_user('user1')
user1.Body_information()


Подробнее здесь: https://stackoverflow.com/questions/782 ... a-function

Вернуться в «Python»