Skip to content
Advertisement

pass a string as argument in instance of a class, should have method that take string as an arg and perform according to instance.method

I want to create a instance of class Token that takes a string as an argument, this class should also have method punc that tokenize the string according to the method.instance. or raise an not implement error with a message. Problem is that I am new to OOP, class, attribute. I don’t know how to pass the string as an argument and method will work on the string according to the string passed in class instance.

a = Token("a-z")
a.punc("Are you sure?")

output I am looking for "a-z" 
['Are','you','sure']

a = Token("c")
a.punc("Are you sure?")

output I am looking for "c"
['Are','you','sure?']
class Token:
    
    def __init__(self,string):
        self.az = "a-z"
        self.c = "c"
        self.string=string
       
        if "a-z" in string:
            string = string.split('?')
            
        if "c" in string:
            string = string.split()
          
        
    def punc (self,string):
        return self.string

output I get a-z which is not the right one. I know the coding is wrong, since I really not sure how to pass string as an argument. Any help will be appreciated :)

Advertisement

Answer

Are you looking for something like this?

import re
class Token:
    
    def __init__(self, az):
        # we only initialize az in here 
        # which can hold only a-z or c
        self.az = az
        # string is empty
        self.string=''

    def punc(self, string):
        # now we check if the az was 'a-z' or 'c'
        if self.az=='a-z':
            # we then remove all non alpha numeric char
            # and split
            self.string = re.sub(r'[^A-Za-z0-9 ]+', '', string).split()
            
        if self.az=='c':
            # or just split
            self.string = string.split()
        return self.string


a = Token("a-z")
print(a.punc("Are you sure?"))

b = Token("c")
print(b.punc("Are you sure?"))

result:

['Are', 'you', 'sure']
['Are', 'you', 'sure?']
User contributions licensed under: CC BY-SA
10 People found this is helpful
Advertisement