#59 Python Tutorial for Beginners | Operator Overloading | Polymorphism

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 พ.ย. 2024
  • Python Tutorial to learn Python programming with examples
    Complete Python Tutorial for Beginners Playlist : • #1 Python Tutorial for...
    Python Tutorial in Hindi : • #1 Python Tutorial | I...
    Check out our courses:
    Spring Framework in 8 Full Day Course Live: go.telusko.com...
    Coupon: TELUSKO10 (10% Discount)
    Complete Java Developer Course Batch-3: go.telusko.com...
    Coupon: TELUSKO10 (10% Discount)
    Master Java Spring Development : go.telusko.com...
    Coupon: TELUSKO20 (20% Discount)
    Udemy Courses:
    Spring: go.telusko.com...
    Java:- go.telusko.com...
    Java Spring:- go.telusko.com...
    Java For Programmers:- go.telusko.com...
    Python : go.telusko.com...
    Git : go.telusko.com...
    Docker : go.telusko.com...
    For More Queries WhatsApp or Call on : +919008963671
    website : courses.telusk...
    Github :- github.com/nav...
    Editing Monitors :
    amzn.to/2RfKWgL
    amzn.to/2Q665JW
    amzn.to/2OUP21a.
    Check out our website: www.telusko.com
    Follow Telusko on Twitter: / navinreddy20
    Follow on Facebook:
    Telusko : / teluskolearn. .
    Navin Reddy : / navintelusko
    Follow Navin Reddy on Instagram: / navinreddy20
    Subscribe to our other channel:
    Navin Reddy : www.youtube.co....
    Telusko Hindi :
    www.youtube.co....
    Donation:
    PayPal Id : navinreddy20
    Patreon : navinreddy20
    www.telusko.com...

ความคิดเห็น • 282

  • @mainakchakrabarti
    @mainakchakrabarti 4 ปีที่แล้ว +62

    Sir your statement : "marks is not the way of comparing" won my heart

  • @maneeshsingh2647
    @maneeshsingh2647 5 ปีที่แล้ว +238

    "This is horrible way to compare two students by marks"
    I Love this line👍🙂

  • @utkarshachaudhari871
    @utkarshachaudhari871 5 ปีที่แล้ว +108

    After so so many years, I have finally understood operator overloading!

    • @ankitakumari2756
      @ankitakumari2756 4 ปีที่แล้ว +2

      😱😱😇

    • @tanishasethi7363
      @tanishasethi7363 4 ปีที่แล้ว

      Exactly

    • @alimdeen6921
      @alimdeen6921 3 ปีที่แล้ว +9

      Still i can't understand operator overloading 😔😓

    • @anindian4601
      @anindian4601 3 ปีที่แล้ว +3

      @@alimdeen6921 YOU ARE RIGHT, THIS GUY Showing his nose after traveling through out the universe, actually he has to tell first simple example then he can show his vaast variety of expereince on us as beginners but directly he showing something else 99.9999999% from that the thing what we need is 0.0000000001% so its very confusing he did same for duck typing also

    • @abhisheksriramoju8772
      @abhisheksriramoju8772 3 ปีที่แล้ว

      @@anindian4601 No, Actually his explanation is cool. He is explaining in the beginner point of view

  • @ankitajain2883
    @ankitajain2883 4 ปีที่แล้ว +35

    He is probably the best instructor to learn from! He teaches with so much clarity! Hats off!

  • @moinafsana5945
    @moinafsana5945 5 ปีที่แล้ว +30

    Since last Monday I have started to watching your videos . Now I am in #60.. , ultimately your teaching skill is too good . I have some basic core java knowledge, that's why I can catch up quickly and without you I couldn't go in depth in python.. thank you very much for sharing those materials . Appreciate your hard work.

  • @ShaheenPatan
    @ShaheenPatan 8 หลายเดือนก่อน +3

    00:03 Operator overloading allows usage of operators with user-defined types like strings and classes.
    02:02 Python uses methods to carry out operations like addition.
    03:48 Operator overloading allows defining how operators work with user-defined classes.
    05:36 Operator overloading allows us to define custom behavior for operators
    07:28 Python allows operator overloading for custom classes
    09:08 Operator overloading allows custom comparison of objects.
    10:59 Operator overloading and polymorphism in Python
    12:43 Operator overloading in Python allows us to customize the behavior of operators.

  • @sm07
    @sm07 ปีที่แล้ว +2

    I was here to learn what operator overloading is. At the time of the end of the video, I learned about the structure and how the things behind the scene gonna work. Take a Bow Navin Sir.

  • @madansirish9356
    @madansirish9356 5 ปีที่แล้ว +7

    Excellent explanation I ever heard. You are amazing. Your teaching skills are at a peak. Impressed.

  • @alicandonmez6748
    @alicandonmez6748 5 ปีที่แล้ว +16

    You are a talented teacher! Happy that i've found you. Keep up the videos coming

  • @sairajdas6692
    @sairajdas6692 6 ปีที่แล้ว +7

    Wow I never knew about these double underscore function. Glad to learn new things from your channel. Thank you sir.

  • @Mushsayer
    @Mushsayer 4 ปีที่แล้ว +3

    Clearly explained the concept of method overloading in Python. Thank you!

  • @mbumbamwalila4224
    @mbumbamwalila4224 3 ปีที่แล้ว +1

    Thanks, sir! from now on, you opened my eyes on what python can do. All confusions are gone from my head. I really understand python now.

  • @vasudevareddy5378
    @vasudevareddy5378 5 ปีที่แล้ว +2

    One of the Good lecture, Students need teachers like you

  • @surajjena1437
    @surajjena1437 4 ปีที่แล้ว +4

    Thanks superhuman for this great explanation, right now I can feel what is happening behind the scene

  • @sarthakyadav9950
    @sarthakyadav9950 3 ปีที่แล้ว +3

    Thanks for providing quality content for free it's better than most of the paid courses out there .
    You are just amazing.(:

  • @motog9464
    @motog9464 6 ปีที่แล้ว +23

    Awesome sir...
    Also being an educator, I can imagine how much effort you are putting in these videos.👍

    • @harshavardhandsh5190
      @harshavardhandsh5190 5 ปีที่แล้ว +2

      How cruel are these language developer, can they not make this little easy....

    • @amongdoomers9464
      @amongdoomers9464 5 ปีที่แล้ว +1

      @@harshavardhandsh5190 Python is easy thou

    • @RavikanthTalakoti
      @RavikanthTalakoti 4 ปีที่แล้ว

      I can also see the effort you put in these videos, Navin sir. And today is my birthday Navin sir!

  • @coolguy-zm7tn
    @coolguy-zm7tn 5 หลายเดือนก่อน +1

    Great video, got lots to learn thank you so much 😊

  • @arihantjain4344
    @arihantjain4344 4 ปีที่แล้ว +6

    Are concepts really so easy,or it's his teaching that's making them??

  • @neomuks
    @neomuks 4 ปีที่แล้ว

    The way you explained the connection and flow behind the code was exceptionally well, your video increasing my knowledge of python exponentially.

  • @EylulTurksever
    @EylulTurksever 4 ปีที่แล้ว

    thank you for your amazing lessons sir.
    def __str__(self):
    return " ".join(map(str, [self.mark1, self.mark2]))

  • @tanaysamanta4730
    @tanaysamanta4730 3 ปีที่แล้ว +7

    I ain't able to figure out the example of operator overloading :(

  • @divyanshusingh6105
    @divyanshusingh6105 4 ปีที่แล้ว

    Really I never understand this topic... But nowww i really know the meaning of operator overloading! Hats off to you sir🙌

  • @namansingh8081
    @namansingh8081 5 ปีที่แล้ว +2

    Thnx very much I'm having exam tomorrow very nicely explained

  • @Matrix_Mayhem
    @Matrix_Mayhem ปีที่แล้ว

    This video was very informative. Feels good to understand how magic methods works. Thanks Navin Sir!

  • @shrikarp7233
    @shrikarp7233 4 ปีที่แล้ว

    Sir u literally thrown away my difficulty of understanding magical methods 🔥

  • @TheKapilsharma143
    @TheKapilsharma143 3 ปีที่แล้ว

    After waching video in sequence this is the firts video i enjoy in diff way. ;)

  • @TM-ej9mr
    @TM-ej9mr 3 ปีที่แล้ว

    Best Tutorial series in youtube ..........Love Sir

  • @bandhanmondal4685
    @bandhanmondal4685 3 ปีที่แล้ว

    this is the best channel on youtube to learn coding

  • @moinafsana5945
    @moinafsana5945 5 ปีที่แล้ว +8

    Excellent Sir .. now I feel like a coder 😁

  • @IrfanShaikh-lw8jl
    @IrfanShaikh-lw8jl 4 ปีที่แล้ว +4

    In the code of addition
    def __add__(self, other):
    m1 = self.m1 + self.m2
    m2 = other.m1 + other.m2
    s3 = Student (m1, m2)
    This is correct

  • @engineeringwithprogramming
    @engineeringwithprogramming 3 ปีที่แล้ว

    Finally in this tutorial somethings I couldn't understand started making sense, thanks to this man!

  • @ravitejathumnoori1450
    @ravitejathumnoori1450 6 ปีที่แล้ว +9

    sir, can you make videos on REST API using python

  • @Shubham-fk4is
    @Shubham-fk4is 5 ปีที่แล้ว +5

    I think below method is much more easy
    class A:
    def __init__(self,a):
    self.a = a
    def __add__(self,other):
    return self.a + other.a
    x = A(1)
    y = A(2)
    print(x+y)
    o/p = 3

    • @vibhashikhanna1864
      @vibhashikhanna1864 5 ปีที่แล้ว +1

      can you also help for subtraction

    • @Shubham-fk4is
      @Shubham-fk4is 5 ปีที่แล้ว +1

      @@vibhashikhanna1864
      class A:
      def __init__(self,a):
      self.a = a
      def __sub__(self,other):
      return self.a - other.a
      x = A(3)
      y = A(2)
      print(x-y)
      o/p = 1

    • @vibhashikhanna1864
      @vibhashikhanna1864 5 ปีที่แล้ว +1

      @@Shubham-fk4is thnx buddy

    • @vibhashikhanna1864
      @vibhashikhanna1864 5 ปีที่แล้ว +1

      class A:
      def __init__(self,a):
      self.a = a
      def __add__(self,other):
      return self.a + other.a
      def _sub_(self,other):
      return self.a-other.a

      x = A(int(input("enter the number ")))
      y = A(int(input("enter the second number ")))
      print(x+y)


      x = A(int(input("enter the number ")))
      y = A(int(input("enter the second number ")))
      print(x-y)
      can youn help me with this...i wanna do it with operator overloading

    • @Shubham-fk4is
      @Shubham-fk4is 5 ปีที่แล้ว +1

      @@vibhashikhanna1864
      This program works well but you made a mistake with underscores.
      so use double underscores instead of single i.e. __sub__

  • @kaushalkishor4404
    @kaushalkishor4404 3 ปีที่แล้ว +1

    No doubt, explanation is quite perspicuous.
    I am just curious how print(a+b+c) performed behind the scene because __add__ can add only two number
    Any Explanation/suggestion will be highly appreciated

    • @ihateracistandblackpeople4272
      @ihateracistandblackpeople4272 2 ปีที่แล้ว

      it's too late but if you're still curious then variable length argument concept would be used in that case,you would accept the b,c in a list in the formal args and then perform the addition by using required mean like iteration etc

  • @mysketchbook9630
    @mysketchbook9630 5 ปีที่แล้ว +1

    Thanks Naveen, every time I go through your video, I thank you and your team.

  • @Laith.Alkhazragy
    @Laith.Alkhazragy 4 ปีที่แล้ว +1

    this is not so easy to understand, you did it also very quickly.. anyway thank u very much ..

  • @gouravchouhan1790
    @gouravchouhan1790 3 ปีที่แล้ว +2

    That's who things should be taught, loved the way you created a some background

  • @bhaveshmevada8424
    @bhaveshmevada8424 6 ปีที่แล้ว +2

    Sir what next after this basic ?? Blockchain or advance python??

  • @bhuvanaguna7782
    @bhuvanaguna7782 4 ปีที่แล้ว

    thank you for your excellent class...I felt very very happy..thank you sir

  • @santhosha1312
    @santhosha1312 2 ปีที่แล้ว

    Sir Your videos are like preparing tastiest Briyani and giving it as service for free 😃🥰🥰

  • @eliehaddad84
    @eliehaddad84 2 ปีที่แล้ว

    This man is a genius 🙌

  • @kartickchandramanna267
    @kartickchandramanna267 ปีที่แล้ว

    Awesome lecture.
    Thank you sir 🙏

  • @mariaxia2687
    @mariaxia2687 5 ปีที่แล้ว +5

    Thank you for uploading these awesome lectures, Sir. There's a typo in this video though. "Syntactic Sugar" instead of "Synthetic Sugar".

  • @rabilrbl
    @rabilrbl 4 ปีที่แล้ว

    Great explaination!
    Its crystal clear for me now.

  • @saviofernandes5263
    @saviofernandes5263 3 ปีที่แล้ว +1

    At 1:24 it's supposed to be "Syntactic Sugar"

  • @kulamritbamrah4880
    @kulamritbamrah4880 4 ปีที่แล้ว +2

    Actually, the __div__(self,other) magic method for operator (/) is only for Python 2.x. For Python 3.x -- as I have found -- the (/) operator call the __truediv__(self,other) magic method.

  • @fathimathsameera9593
    @fathimathsameera9593 3 ปีที่แล้ว

    Your classes are amazing...

  • @indreeshpandey343
    @indreeshpandey343 4 ปีที่แล้ว

    sir please bring up a series of python for intermediate where we can understand advance concepts of python.

  • @chinmayraut6058
    @chinmayraut6058 4 ปีที่แล้ว +1

    what if we get many teacher like him
    .
    .
    .
    .
    .
    .
    .
    .
    .
    In no time INDIA will be a super developed country

  • @AyushSharma-be4kh
    @AyushSharma-be4kh 4 ปีที่แล้ว

    Best Way one can teach ! Appreciative content.

  • @jdranpariya3601
    @jdranpariya3601 6 ปีที่แล้ว +3

    Hi sir will you teach advance python like networking with python etc...

  • @sam.mankar
    @sam.mankar 4 ปีที่แล้ว +2

    Sir ek aur video bana do operator overloading k upar... Apke sare tutorials samj gye, ye nhi smja

  • @vickyjha6839
    @vickyjha6839 4 ปีที่แล้ว

    Thanks a lot sir you cleared my doubts

  • @bhaveshmevada8424
    @bhaveshmevada8424 6 ปีที่แล้ว +1

    Sir please make step by step videos on interview preperation....

  • @vikaspal2799
    @vikaspal2799 4 ปีที่แล้ว +2

    9:08 LEGEND!!!!!

  • @054_ritesh3
    @054_ritesh3 4 ปีที่แล้ว +1

    Print(S1.AMAZING,S1.AWSOME)

  • @cokcury
    @cokcury 4 ปีที่แล้ว

    hat's off guruji, im glad that people are aware about the marks comparison way, i aint a fan that way either. but as you said on youtube it might have reached a mass crowd...

  • @habibahmad9415
    @habibahmad9415 4 ปีที่แล้ว +2

    Sir you are passing double values through s1 & s2 but it added only first values of both s1 & s2 ...my question is where second values has gone

    • @theanirudhroy
      @theanirudhroy 3 ปีที่แล้ว

      I was looking in the comment section to see if anyone has asked this particular question, I have no idea what other people understood !

  • @s.baskaravishnu22
    @s.baskaravishnu22 5 ปีที่แล้ว

    your explanation is excellent

  • @subhamthemusicalguy8851
    @subhamthemusicalguy8851 2 ปีที่แล้ว

    Excellent explanation

  • @Praveenkumar-wv8qy
    @Praveenkumar-wv8qy 5 ปีที่แล้ว

    great sir again the imformation which will add some values in my life😍

  • @khalidelgazzar
    @khalidelgazzar 4 ปีที่แล้ว +1

    This is one hell of a great video! Thank you

  • @sriramasudhamsurachapudi6496
    @sriramasudhamsurachapudi6496 ปีที่แล้ว

    A small doubt: for math operation like +, - , * , we can understand which method will be called. How to know which way of calling maps to which builtin method?
    Eg. - How to know by calling print(a) will call __str__() ?

    • @Matrix_Mayhem
      @Matrix_Mayhem ปีที่แล้ว +1

      google or by reading document. You can search - print() function's magic/inbuilt method. like that

  • @alpabhanushali3512
    @alpabhanushali3512 4 ปีที่แล้ว +1

    What if we want to add 3 values by method overloading...? 🤔
    Like... s4=s1+s2+s3

  • @raihankhanphotography6041
    @raihankhanphotography6041 3 ปีที่แล้ว

    You're an awesome teacher!

  • @skrishnan9625
    @skrishnan9625 4 ปีที่แล้ว

    *excellent teaching sir. i think I would get good marks in my 11th standard

  • @kenshinnanashi9469
    @kenshinnanashi9469 5 ปีที่แล้ว

    These tutorials are great, but it would be a lot better to watch if the code in the background was a bigger font and/or more zoomed on, couse althought the content is awesome, you can hardly read the code it self.cheers

  • @mohdsaif8423
    @mohdsaif8423 2 ปีที่แล้ว

    Hi Naveen,
    what are the programs used in Product development Programs
    Kindly make video

  • @subhankardas1789
    @subhankardas1789 3 ปีที่แล้ว

    If we have two class,
    Class BookX:
    def __init__(self, pages) :
    self. pages=pages
    def __add__(self, other) :
    return self. pages+other.pages
    Class BookY:
    def __init__(self, pages) :
    self. pages=pages
    x=BookX(100)
    y=BookY(150)
    print("Total pages =", x+y)
    In this code why we are giving the add method in first class and why not in second class??

    • @user-rn6zc7vp3h
      @user-rn6zc7vp3h 3 ปีที่แล้ว

      you can have in second class too you just need to change expression to y+x cuz first parameter has to be object of class BookY

  • @abdmjd
    @abdmjd 3 ปีที่แล้ว

    This is good and just.
    Thank you.

  • @vyomchandragallani3645
    @vyomchandragallani3645 6 ปีที่แล้ว +4

    why it is giving only one output in case of sum... i mean 118 and 134 should be there.... also if i want to get both sums what i has to write ?

    • @shivashishnaramdeo1712
      @shivashishnaramdeo1712 5 ปีที่แล้ว +2

      while printing he has only written "s3.m1"..print "s3.m2" as well to get 134

  • @tensfantasy2384
    @tensfantasy2384 3 ปีที่แล้ว

    9:10 .....Golden Line 👏👏👏👌👌

  • @pymondo1147
    @pymondo1147 6 ปีที่แล้ว +1

    So amazing sir.. Thank you for the awesome tutorial.

  • @milimishra6447
    @milimishra6447 6 ปีที่แล้ว

    Ur python videos are awsmm.. watched all ur videos on python . waiting for next videos on python..pls keep making videos on python..thankuu sir

  • @deepenpatel5403
    @deepenpatel5403 5 ปีที่แล้ว +1

    Can we overload the '__add__' method multiple times inside the same class? (Each method having its own different code)

  • @maheshvangala8472
    @maheshvangala8472 3 ปีที่แล้ว

    Just Enjoyed It Thanks

  • @unnatiagrawal8936
    @unnatiagrawal8936 4 ปีที่แล้ว

    inside int class in add function self is argument which means add method is instance method.why we are able to call "int.add " it should be object.add()

  • @nikhil6842
    @nikhil6842 3 ปีที่แล้ว

    I was frustrated since there’s no custom sort method for heapq. Hell i was Huma switch to c++ , but you explained it greatly

  • @mratanusarkar
    @mratanusarkar 5 ปีที่แล้ว +3

    @Telusko, Sir, How to know the magic method used for an operator from pycharm itself?
    Sir, by your experience and knowledge you are saying that for "+" __add__ is used, for "print()" __str__ is being used, how do we know for a random operator/method, what magic method is being used in the background...so that we may overload it to our usage/preference??

    • @deepenpatel5403
      @deepenpatel5403 5 ปีที่แล้ว

      Yes, I want to know the same.

    • @manojputhalapattu1469
      @manojputhalapattu1469 5 ปีที่แล้ว

      press control and click on the operator you want to know to get MAGIC method

    • @krishnarout9176
      @krishnarout9176 4 ปีที่แล้ว

      Double click "shift" and search magic method

  • @GamingSunDBZ
    @GamingSunDBZ 4 ปีที่แล้ว +1

    Excellent video...finally understood the concept

  • @rushilmehta4415
    @rushilmehta4415 4 ปีที่แล้ว +1

    How can we know which method is called in the behind if we use a specific operator?

  • @just_a_viewer5
    @just_a_viewer5 2 ปีที่แล้ว

    it's actually "syntactic sugar" at 1:31

  • @skrishnan9625
    @skrishnan9625 4 ปีที่แล้ว

    class PyCharm:
    def execute(self):
    print("Executing")
    print("Compiling")
    class MyEditor:
    def execute(self):
    print("Spell Check")
    print("Convention Check")
    print("Executing")
    print("Compiling")
    class Laptop:
    def code(self,ide):
    ide.execute()
    ide=PyCharm()
    lap1=Laptop()
    lap1.code(ide)

  • @srujanapavanpatwari8502
    @srujanapavanpatwari8502 4 ปีที่แล้ว +1

    There is no div magic method, please can you tell me for division how it works

  • @Chandalyt
    @Chandalyt 4 ปีที่แล้ว +1

    Please make one more video on class and __init__

  • @Ihsan_almohsin
    @Ihsan_almohsin 2 ปีที่แล้ว

    you are just awesome

  • @ROHIT-gv7xk
    @ROHIT-gv7xk 5 ปีที่แล้ว +1

    nice video sir

  • @Skaxarrat
    @Skaxarrat 6 ปีที่แล้ว

    When you print an object (and everything in Python is an object), it calls automatically the __str__ method, so we don't need to call it. 'print(s1)' would be enough to do the trick.

  • @babasahebbhosale7908
    @babasahebbhosale7908 3 ปีที่แล้ว +1

    class student:
    def __add__ (self,n1,n2):
    s=0
    s=n1+n2
    return s
    s1=student (1,2)
    print (s1)
    #will it show error dont say #indentation error becoz i had types

  • @harshvardhan-qx3ug
    @harshvardhan-qx3ug 4 ปีที่แล้ว

    Please check, It would be syntactic sugar not a synthetic sugar..

  • @atharvsarathe540
    @atharvsarathe540 3 ปีที่แล้ว

    also please explain the difference between data type and class.
    is int, list , str a class or are they data type?

  • @sreyadeb2673
    @sreyadeb2673 4 ปีที่แล้ว +1

    For defining add or any operator in class can i use any other keyword like, for add __a__. Or for greater than __grt__??

  • @surajkottayi2451
    @surajkottayi2451 4 ปีที่แล้ว

    Just amazing 😊👍

  • @leyanthreddy1436
    @leyanthreddy1436 4 ปีที่แล้ว

    Really u r awesome sir

  • @deepanshubabbar9324
    @deepanshubabbar9324 6 ปีที่แล้ว +2

    i have a question. Can you please tell me why you have written s3=Student(m1,m2) inside the __add__(self,other) method. I am not able to understand this. Please tell this.

    • @SpontaniousGuy
      @SpontaniousGuy 6 ปีที่แล้ว

      By adding s3 = Student(m1,m2) under the __add__ function, this will automatically 'create' another 'student' with the resultant marks.

  • @bhagyalakshmibadiginchala38
    @bhagyalakshmibadiginchala38 4 ปีที่แล้ว

    I have a doubt about these statements will you please explain..
    X+y is translated into x.__add__(y)
    If x has not implemented __add__ and x,y are of different types then y.__radd__(x) is called. There are equivalent "r" methods for all magic methods just mentioned.

  • @sukruthh1
    @sukruthh1 4 ปีที่แล้ว

    Hi Navin, I was trying to overload the "__truediv__" operator and could see that its having an issue. Below is my code. Please do let me know, if i am doing anything wrong. BTW, i am using the Python 3 version :-
    class Stduent:

    def __init__(self,m1,m2):
    self.m1=m1
    self.m2=m2

    def __truediv__(self,other):
    m1=self.m1/other.m1
    m2=self.m2/other.m2
    s3 = Student(m1,m2)
    return s3
    S1=Student(20,40)
    S2=Student(10,20)
    s3=S1/S2
    print(s3.m1)
    TypeError: unsupported operand type(s) for /: 'Student' and 'Student'

  • @BrighterWay
    @BrighterWay 5 ปีที่แล้ว

    As useal greater explanation sir💯💯

  • @yashwanthlal9071
    @yashwanthlal9071 3 ปีที่แล้ว

    The main doubt is which value goes in which attribute s

  • @wasimzaman674
    @wasimzaman674 2 ปีที่แล้ว

    You are just a flame sir G