Python - är jag på rätt spår?

Permalänk
Medlem

Python - är jag på rätt spår?

Hej!

Jag har just tagit mig tid att börja lära mig python (igen) och nu classer. Har nu gjort ett litet projekt. Tänker jag rätt / fel i min kod? Något i upplägget jag bör ändra på / tänka på?

Hoppas på lite feedback

Tack på hörhand!

import os class s: def clear(): os.system("clear") class info: # Content output def user(first_name,last_name,age,ountry,city,email,phone): return \ "\n| * Information\n" + \ "\n| > Name: " + first_name + " " + last_name + \ "\n| > Age: " + age + \ "\n| > Country: " + country + \ "\n| > City: " + city + \ "\n| > E-mail: " + email + \ "\n| > Phone number: " + phone + \ "\n" s.clear() # input first_name = input("| > Enter firstname: ") last_name = input("| > Enter lastname: ") age = input("| > Enter your age: ") country = input("| > Enter your country: ") city = input("| > Enter your city: ") email = input("| > Enter your E-mail: ") phone = input("| > Enter your phone number: ") user = info.user(first_name,last_name,age,country,city,email,phone) s.clear() # output print(user)

Permalänk
Hedersmedlem

Nja, det här är inte riktigt rätt om du är ute efter något objektorienterat. Du skapar aldrig en instans av klassen info, du bara sätter en statisk metod "user" i klassen som returnerar en sträng.

Tänk t.ex. om du i slutet av din kod vill kunna skriva ut endast kundens e-postadress...

Permalänk
Medlem
Skrivet av pv2b:

Nja, det här är inte riktigt rätt om du är ute efter något objektorienterat. Du skapar aldrig en instans av klassen info, du bara sätter en statisk metod "user" i klassen som returnerar en sträng.

Tänk t.ex. om du i slutet av din kod vill kunna skriva ut endast kundens e-postadress...

Okej. Är det __init__ jag ska läsa på om?

Permalänk
Hedersmedlem
Skrivet av llxt:

Okej. Är det __init__ jag ska läsa på om?

Japp

Det är nog en bra början, tror resten faller på plats i och med det.

Permalänk
Medlem
Skrivet av pv2b:

Japp

Det är nog en bra början, tror resten faller på plats i och med det.

Är jag på rätt spår nu? Hur anropar jag en enskild variabel i detta senario?

class s: def clear(): os.system("clear") class info: def __init__(self,first_name,last_name,age,country,city,email,phone): self.first_name = first_name self.last_name = last_name self.age = age self.country = country self.city = city self.email = email self.phone = phone def user(self): print("| > Name: " + self.first_name + " " + self.last_name + "\n" + \ "| > Age: " + self.age + "\n" + \ "| > Country: " + self.country + "\n" + \ "| > City: " + self.city + "\n" + \ "| > E-mail: " + self.email + "\n" + \ "| > Phone number: " + self.phone) s.clear() first_name = input("| > Enter your firstname: ") last_name = input("| > Enter your lastname: ") age = input("| > Enter your age: ") country = input("| > Enter your country: ") city = input("| > Enter your city: ") email = input("| > Enter your E-Mail: ") phone = input("| > Enter your phone number: ") nfo = info(first_name,last_name,age,country,city,email,phone) s.clear() nfo.user()

Permalänk
Hedersmedlem

Det där ser mycket bättre ut, men jag förstår inte riktigt frågan: "hur anropar jag en enskild variabel"?

Du kan t.ex. skriva ut användarens e-postadress med:

print(nfo.email)

Permalänk
Medlem
Skrivet av pv2b:

Det där ser mycket bättre ut, men jag förstår inte riktigt frågan: "hur anropar jag en enskild variabel"?

Du kan t.ex. skriva ut användarens e-postadress med:

print(nfo.email)

Ah! Precis, det va det jag frågade efter Tack för hjälpen.

Permalänk
Medlem

Några andra synpunkter? Någon ide som jag bör testa härnäst för att lära mig?